Granting control of SUSET gucs to non-superusers

Started by Mark Dilgerover 4 years ago129 messages
#1Mark Dilger
mark.dilger@enterprisedb.com

Hackers,

PostgreSQL defines a number of GUCs that can only be set by superusers. I would like to support granting privileges on subsets of these to non-superuser roles, inspired by Stephen Frost's recent work on pg_read_all_data and pg_write_all_data roles.

The specific use case motivating this work is that of a PostgreSQL service provider. The provider guarantees certain aspects of the service, such as periodic backups, replication, uptime, availability, etc., while making no guarantees of other aspects, such as performance associated with the design of the schema or the queries executed. The provider should be able to grant to the tenant privileges to set any GUC which cannot be used to "escape the sandbox" and interfere with the handful of metrics being guaranteed. Given that the guarantees made by one provider may differ from those made by another, the exact set of GUCs which the provider allows the tenant to control may differ.

By my count, there are currently 50 such GUCs, already broken down into 15 config groups. Creating a single new role pg_set_all_gucs seems much too coarse a control, but creating 50 new groups may be excessive. We could certainly debate which GUCs could be used to escape the sandbox vs. which ones could not, but I would prefer a design that allows the provider to make that determination. The patch I would like to submit would only give the provider the mechanism for controlling these things, but would not make the security choices for them.

Do folks think it would make sense to create a role per config group? Adding an extra 15 default roles seems high to me, but organizing the feature this way would make the roles easier to document, because there would be a one-to-one correlation between the roles and the config groups.

I have a WIP patch that I'm not attaching, but if I get any feedback, I might be able to adjust the patch before the first version posted. The basic idea is that it allows things like:

GRANT pg_set_stats_monitoring TO tenant_role;

And then tenant_role could, for example

SET log_parser_stats TO off;

Thanks


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#2Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#1)
Re: Granting control of SUSET gucs to non-superusers

Greetings,

On Fri, Apr 30, 2021 at 19:19 Mark Dilger <mark.dilger@enterprisedb.com>
wrote:

PostgreSQL defines a number of GUCs that can only be set by superusers. I
would like to support granting privileges on subsets of these to
non-superuser roles, inspired by Stephen Frost's recent work on
pg_read_all_data and pg_write_all_data roles.

There’s been some effort started in this direction which I was working on
(see the patches about an “admin” role and set of GUCs). I have been
meaning to get back to that but the specific concern I had was about coming
up with how to define the proper set of GUCs.

The specific use case motivating this work is that of a PostgreSQL service

provider. The provider guarantees certain aspects of the service, such as
periodic backups, replication, uptime, availability, etc., while making no
guarantees of other aspects, such as performance associated with the design
of the schema or the queries executed. The provider should be able to
grant to the tenant privileges to set any GUC which cannot be used to
"escape the sandbox" and interfere with the handful of metrics being
guaranteed. Given that the guarantees made by one provider may differ from
those made by another, the exact set of GUCs which the provider allows the
tenant to control may differ.

By my count, there are currently 50 such GUCs, already broken down into 15
config groups. Creating a single new role pg_set_all_gucs seems much too
coarse a control, but creating 50 new groups may be excessive. We could
certainly debate which GUCs could be used to escape the sandbox vs. which
ones could not, but I would prefer a design that allows the provider to
make that determination. The patch I would like to submit would only give
the provider the mechanism for controlling these things, but would not make
the security choices for them.

Do folks think it would make sense to create a role per config group?
Adding an extra 15 default roles seems high to me, but organizing the
feature this way would make the roles easier to document, because there
would be a one-to-one correlation between the roles and the config groups.

New predefined roles are relatively inexpensive. That said, whatever sets
we define need to have some meaning to them- one which is reasonably
future-proofed so that we have some idea what category a new GUC would fit
into.

“Can’t be used to gain superuser” may be a sufficiently clear grouping, as
was more or less contemplated by the “admin” approach. If that doesn’t
work though then we need an understanding of what the limits on these
groups are, so we can competently fit new GUCs into these groups (or invent
new ones if a new GUC truly falls outside all existing but I would expect
that to be a rather rare case..).

We may also wish to keep some GUCs superuser only when they really only
make sense to be used in a developer context...

Thanks,

Stephen

#3Chapman Flack
chap@anastigmatix.net
In reply to: Mark Dilger (#1)
Re: Granting control of SUSET gucs to non-superusers

On 04/30/21 19:19, Mark Dilger wrote:

We could certainly debate which GUCs could be used to escape the sandbox
vs. which ones could not, but I would prefer a design that allows the
provider to make that determination.

I find myself wondering how many GUCs flagged SUSET are not flagged that way
because of a determination already made that they could be used to escape.
(Maybe some of the logging ones, only usable to conceal your escape.)

But there might be ways for a provider, scrutinizing each of those
individually, to conclude "this will not allow escape from the sandbox
/I/ have set up, provided the value being set satisfies constraints
x and y" ... a generalization of the LOAD from $libdir/plugins idea.

So that suggests to me some mechanism where a provider could grant
setting foo to role bar using validator baz().

Can SUSET GUCs be set from SECURITY DEFINER functions? Maybe there are
already the pieces to do that, minus some syntax sugar.

Regards,
-Chap

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephen Frost (#2)
Re: Granting control of SUSET gucs to non-superusers

Stephen Frost <sfrost@snowman.net> writes:

On Fri, Apr 30, 2021 at 19:19 Mark Dilger <mark.dilger@enterprisedb.com>
wrote:

PostgreSQL defines a number of GUCs that can only be set by superusers. I
would like to support granting privileges on subsets of these to
non-superuser roles, inspired by Stephen Frost's recent work on
pg_read_all_data and pg_write_all_data roles.

New predefined roles are relatively inexpensive. That said, whatever sets
we define need to have some meaning to them- one which is reasonably
future-proofed so that we have some idea what category a new GUC would fit
into.
“Can’t be used to gain superuser” may be a sufficiently clear grouping, as
was more or less contemplated by the “admin” approach. If that doesn’t
work though then we need an understanding of what the limits on these
groups are, so we can competently fit new GUCs into these groups (or invent
new ones if a new GUC truly falls outside all existing but I would expect
that to be a rather rare case..).
We may also wish to keep some GUCs superuser only when they really only
make sense to be used in a developer context...

Hmm, is there really any point in that? We already have roles
like "pg_write_server_files" and "pg_execute_server_program",
which allow trivial escalation to superuser if one wishes,
but are still useful as being roles you're a bit less likely
to break your database with accidentally than running as full
superuser.

So ISTM that "pg_set_superuser_parameters" could be treated as
being one of those same sorts of roles that you don't give out
to untrusted people, and then we don't have to worry about
exactly which GUCs might be exactly how dangerous to whom.

If we try to define it as being some lesser level of
privilege than that, I'm afraid we will spend lots of
not-very-productive time trying to classify the security
threats from different GUCs ... and they all have *some*
security issue involved, or they wouldn't be restricted in
the first place. Plus, I'm not looking forward to having
to issue CVEs when we realize we misclassified something.

regards, tom lane

#5Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#2)
Re: Granting control of SUSET gucs to non-superusers

On Apr 30, 2021, at 4:28 PM, Stephen Frost <sfrost@snowman.net> wrote:

“Can’t be used to gain superuser” may be a sufficiently clear grouping, as was more or less contemplated by the “admin” approach. If that doesn’t work though then we need an understanding of what the limits on these groups are, so we can competently fit new GUCs into these groups (or invent new ones if a new GUC truly falls outside all existing but I would expect that to be a rather rare case..).

When I first heard that providers want to build sandboxes around PostgreSQL, I thought the idea was a little silly, because providers can just spin up a virtual machine per tenant and give each tenant superuser privileges on their respective VM. Who cares if they mess it up after that?

The problem with that idea turns out to be that the providers want to take responsibility for some of the database maintenance, possibly including backups, replication, etc. I think the set of controls the provider hands over to the tenant will depend very much on the division of responsibility. If the provider is managing replication, then control over session_replication_role and wal_compression is unlikely to be handed to the tenant, but if the tenant is responsible for their own replication scheme, it might be.

Viewing all of this in terms of which controls allow the tenant to escape a hypothetical sandbox seems like the wrong approach. Shouldn't we let service providers decide which controls would allow the tenant to escape the specific sandbox the provider has designed?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#6Isaac Morland
isaac.morland@gmail.com
In reply to: Mark Dilger (#5)
Re: Granting control of SUSET gucs to non-superusers

On Fri, 30 Apr 2021 at 22:00, Mark Dilger <mark.dilger@enterprisedb.com>
wrote:

Viewing all of this in terms of which controls allow the tenant to escape
a hypothetical sandbox seems like the wrong approach. Shouldn't we let
service providers decide which controls would allow the tenant to escape
the specific sandbox the provider has designed?

I’m not even sure I should be mentioning this possibility, but what if we
made each GUC parameter a grantable privilege? I’m honestly not sure if
this is insane or not. I mean numerically it’s a lot of privileges, but
conceptually it’s relatively simple.

What I like the least about it is actually the idea of giving up entirely
on the notion of grouping privileges into reasonable packages: some of
these privileges would be quite safe to grant in many or even most
circumstances, while others would usually not be reasonable to grant.

#7Chapman Flack
chap@anastigmatix.net
In reply to: Mark Dilger (#5)
Re: Granting control of SUSET gucs to non-superusers

On 04/30/21 22:00, Mark Dilger wrote:

Viewing all of this in terms of which controls allow the tenant to escape
a hypothetical sandbox seems like the wrong approach. Shouldn't we let
service providers decide which controls would allow the tenant to escape
the specific sandbox the provider has designed?

I agree that sounds more like the right approach. It seems to me that
in the general case, a provider might conclude that setting foo is
safe in the provider-designed sandbox /if the value being assigned
to it satisfies some provider-determined conditions/.

On 04/30/21 20:02, Chapman Flack wrote:

So that suggests to me some mechanism where a provider could grant
setting foo to role bar using validator baz().

Can SUSET GUCs be set from SECURITY DEFINER functions? Maybe there are
already the pieces to do that, minus some syntax sugar.

The answer seems to be yes: I just created a SECURITY DEFINER function
and used it to change a SUSET-only GUC setting.

So it seems the machinery is already in place with which a provider
could allow a chosen set of SUSET-only GUCs to be set, to values that
satisfy provider-determined conditions, by users in a provider-chosen
role.

Some pretty syntax like GRANT SETTING foo TO ROLE bar WHERE cond;
would simply be sugar on top.

Regards,
-Chap

#8Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Chapman Flack (#7)
Re: Granting control of SUSET gucs to non-superusers

On May 1, 2021, at 7:07 AM, Chapman Flack <chap@anastigmatix.net> wrote:

On 04/30/21 22:00, Mark Dilger wrote:

Viewing all of this in terms of which controls allow the tenant to escape
a hypothetical sandbox seems like the wrong approach. Shouldn't we let
service providers decide which controls would allow the tenant to escape
the specific sandbox the provider has designed?

I agree that sounds more like the right approach. It seems to me that
in the general case, a provider might conclude that setting foo is
safe in the provider-designed sandbox /if the value being assigned
to it satisfies some provider-determined conditions/.

So it seems the machinery is already in place with which a provider
could allow a chosen set of SUSET-only GUCs to be set, to values that
satisfy provider-determined conditions, by users in a provider-chosen
role.

Some pretty syntax like GRANT SETTING foo TO ROLE bar WHERE cond;
would simply be sugar on top.

I agree with everything you say here. I have some thoughts about usability....

I'd like the experience for the tenant to be as similar as possible to having superuser privileges on their own cluster. The tenant may be migrating an application from a database that they currently manage themselves, and any need to use different syntax from what they have been using is an extra hurdle that could derail the migration.

Extra syntax for use by the service provider seems much easier to justify.

If the service provider can install extra role-aware check_hooks for gucs, and if the include directive for postgresql.conf can specify a role under which a postgresql.conf.tenant file is processed, then the tenant can port their application and their config file and the only things that should break are those things the provider has intentionally prohibited.

Does this sound like a reasonable approach?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#9Chapman Flack
chap@anastigmatix.net
In reply to: Mark Dilger (#8)
Re: Granting control of SUSET gucs to non-superusers

On 05/01/21 12:13, Mark Dilger wrote:

Extra syntax for use by the service provider seems much easier to justify.

If the service provider can install extra role-aware check_hooks for gucs,
and if the include directive for postgresql.conf can specify a role under
which a postgresql.conf.tenant file is processed, then the tenant can port
their application and their config file and the only things that should break
are those things the provider has intentionally prohibited.

Maybe version 0 is where the provider just builds a shared object
to go in shared_preload_libraries. The provider has probably already
done a bunch of other stuff more challenging than that.

The GUC system would have to expose a way for the shared object to
chain extra_check_hooks off existing GUCs. An extra_check_hook can check
both the value and the role of the caller.

The configfile syntax for include-with-a-role would be the only other
missing piece.

Version 0.5 is maybe where someone contributes code for such a shared
object that is somewhat general and configured by a yaml file, or
something. (That would probably be easier if an extra_check_hook accepts
the usual void *extra context argument that existing GUC hooks don't.)

Regards,
-Chap

#10Michael Banck
michael.banck@credativ.de
In reply to: Mark Dilger (#1)
Re: Granting control of SUSET gucs to non-superusers

Hi,

On Fri, Apr 30, 2021 at 04:19:22PM -0700, Mark Dilger wrote:

PostgreSQL defines a number of GUCs that can only be set by
superusers. I would like to support granting privileges on subsets of
these to non-superuser roles, inspired by Stephen Frost's recent work
on pg_read_all_data and pg_write_all_data roles.

The specific use case motivating this work is that of a PostgreSQL
service provider. The provider guarantees certain aspects of the
service, such as periodic backups, replication, uptime, availability,
etc., while making no guarantees of other aspects, such as performance
associated with the design of the schema or the queries executed. The
provider should be able to grant to the tenant privileges to set any
GUC which cannot be used to "escape the sandbox" and interfere with
the handful of metrics being guaranteed. Given that the guarantees
made by one provider may differ from those made by another, the exact
set of GUCs which the provider allows the tenant to control may
differ.

By my count, there are currently 50 such GUCs, already broken down
into 15 config groups. Creating a single new role pg_set_all_gucs
seems much too coarse a control, but creating 50 new groups may be
excessive. We could certainly debate which GUCs could be used to
escape the sandbox vs. which ones could not, but I would prefer a
design that allows the provider to make that determination. The patch
I would like to submit would only give the provider the mechanism for
controlling these things, but would not make the security choices for
them.

Do folks think it would make sense to create a role per config group?
Adding an extra 15 default roles seems high to me, but organizing the
feature this way would make the roles easier to document, because
there would be a one-to-one correlation between the roles and the
config groups.

I have a WIP patch that I'm not attaching, but if I get any feedback,
I might be able to adjust the patch before the first version posted.
The basic idea is that it allows things like:

GRANT pg_set_stats_monitoring TO tenant_role;

And then tenant_role could, for example

SET log_parser_stats TO off;

Just saying, I've proposed something very similar, albeit for a narrower
scope (mostly the Reporting and Logging category) here:
/messages/by-id/c2ee39152957af339ae6f3e851aef09930dd2faf.camel@credativ.de

Michael

--
Michael Banck
Projektleiter / Senior Berater
Tel.: +49 2166 9901-171
Fax: +49 2166 9901-100
Email: michael.banck@credativ.de

credativ GmbH, HRB M�nchengladbach 12080
USt-ID-Nummer: DE204566209
Trompeterallee 108, 41189 M�nchengladbach
Gesch�ftsf�hrung: Dr. Michael Meskes, Sascha Heuer

Unser Umgang mit personenbezogenen Daten unterliegt
folgenden Bestimmungen: https://www.credativ.de/datenschutz

#11Robert Haas
robertmhaas@gmail.com
In reply to: Chapman Flack (#9)
Re: Granting control of SUSET gucs to non-superusers

On Sat, May 1, 2021 at 12:37 PM Chapman Flack <chap@anastigmatix.net> wrote:

Maybe version 0 is where the provider just builds a shared object
to go in shared_preload_libraries. The provider has probably already
done a bunch of other stuff more challenging than that.

The GUC system would have to expose a way for the shared object to
chain extra_check_hooks off existing GUCs. An extra_check_hook can check
both the value and the role of the caller.

I think there are two parts to this problem. First, the SP needs to be
able to delegate to some users but not others the ability to set
superuser GUCs. Second, the SP needs to be able to control which GUCs
the privileged users get to set and perhaps to what values. A hook of
the type you propose here seems like it might work reasonably well for
that second part, but it's not totally obvious to me how it helps with
the first part.

Instead of going to the extreme of one predefined role per GUC, maybe
we could see if the PGC_SUSET GUCs could be divided into buckets based
on the reason they are so marked? For example, log_parser_stats,
log_planner_stats, log_executor_stats, log_statement_stats,
log_btree_build_stats, trace_locks, trace_userlocks, trace_lwlocks,
log_min_duration_statement, and a bunch of others are probably all
SUSET just on the theory that only the superuser should have the right
to control what ends up in the log. But we could make a predefined
role that represents the right to control what ends up in the log, and
then all of those GUCs could be tied to that role. Is that too
coarse-grained? It might be.

One problem with having a separate predefined role for every PGC_SUSET
GUC is that it's no help for extensions. Both auto_explain and
pg_stat_statements have such GUCs, and there may be out-of-core
extensions that do as well. We should try to come up with a system
that doesn't leave them out in the cold.

--
Robert Haas
EDB: http://www.enterprisedb.com

#12Chapman Flack
chap@anastigmatix.net
In reply to: Robert Haas (#11)
Re: Granting control of SUSET gucs to non-superusers

On 05/03/21 11:22, Robert Haas wrote:

The GUC system would have to expose a way for the shared object to
chain extra_check_hooks off existing GUCs. An extra_check_hook can check
both the value and the role of the caller.

I think there are two parts to this problem. First, the SP needs to be
able to delegate to some users but not others the ability to set
superuser GUCs. Second, the SP needs to be able to control which GUCs
the privileged users get to set and perhaps to what values. A hook of
the type you propose here seems like it might work reasonably well for
that second part, but it's not totally obvious to me how it helps with
the first part.

I guess I was thinking, but forgot to convey to the keyboard, that the
existence of a non-empty extra_check_hooks chain on a SUSET GUC (which
could only have been attached from a shared preload library) would
implicitly change SUSET to mean settable whenever accepted by the hook(s).

Regards,
-Chap

#13Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#11)
Re: Granting control of SUSET gucs to non-superusers

On May 3, 2021, at 8:22 AM, Robert Haas <robertmhaas@gmail.com> wrote:

One problem with having a separate predefined role for every PGC_SUSET
GUC is that it's no help for extensions. Both auto_explain and
pg_stat_statements have such GUCs, and there may be out-of-core
extensions that do as well. We should try to come up with a system
that doesn't leave them out in the cold.

As things stand, all custom variables defined via the DefineCustom{Bool,Int,Real,String,Enum}Variable are placed in the CUSTOM_OPTIONS config_group. We could add a role for controlling any SUSET CUSTOM_OPTIONS GUCs, or we could extend those functions to take a config_group option, or perhaps some of both. I haven't thought too much yet about whether allowing extensions to place a custom GUC into one of the predefined groups would be problematic. Any thoughts on that?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#14Robert Haas
robertmhaas@gmail.com
In reply to: Chapman Flack (#12)
Re: Granting control of SUSET gucs to non-superusers

On Mon, May 3, 2021 at 11:45 AM Chapman Flack <chap@anastigmatix.net> wrote:

I guess I was thinking, but forgot to convey to the keyboard, that the
existence of a non-empty extra_check_hooks chain on a SUSET GUC (which
could only have been attached from a shared preload library) would
implicitly change SUSET to mean settable whenever accepted by the hook(s).

Sure, but the hook still needs a way to know which users are entitled
to set the GUC.

--
Robert Haas
EDB: http://www.enterprisedb.com

#15Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#13)
Re: Granting control of SUSET gucs to non-superusers

On Mon, May 3, 2021 at 12:25 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

As things stand, all custom variables defined via the DefineCustom{Bool,Int,Real,String,Enum}Variable are placed in the CUSTOM_OPTIONS config_group. We could add a role for controlling any SUSET CUSTOM_OPTIONS GUCs, or we could extend those functions to take a config_group option, or perhaps some of both. I haven't thought too much yet about whether allowing extensions to place a custom GUC into one of the predefined groups would be problematic. Any thoughts on that?

Well...

One idea would be to get rid of PGC_SUSET altogether and instead have
a set of flags associated with each GUC, like PGF_SERVER_LOG,
PGF_CORRUPT_DATA, PGF_CRASH_SERVER. Then you could associate those
flags with particular predefined roles and grant them out to whoever
you want.

So if a GUC is flagged PGF_SERVER_LOG|PGF_CRASH_SERVER, then the
assumption is that it's security-sensitive because it both lets you
alter the contents of the server log and also lets you crash the
server. If you are granted both pg_server_log and pg_crash_server, you
can set it, otherwise not.

This is just wild brainstorming, but my point is that I don't think
doing it by options groups is particularly good, because it doesn't
really have any relationship to why those things are marked SUSET in
the first place. To take an example involving functions rather than
GUCs, the pageinspect functions are super-user only because you can
crash the server by inspecting malformed data that you supply as an
arbitrarily literal, but AFAIK the functions in pgstattuple have no
similar hazard, and are just super-only because we don't really know
who the superuser wants to authorize, and maybe it's not everybody. So
those cases are really different, even though both are extensions. I
think the same likely holds true for GUCs.

--
Robert Haas
EDB: http://www.enterprisedb.com

#16Chapman Flack
chap@anastigmatix.net
In reply to: Robert Haas (#14)
Re: Granting control of SUSET gucs to non-superusers

On 05/03/21 13:23, Robert Haas wrote:

On Mon, May 3, 2021 at 11:45 AM Chapman Flack <chap@anastigmatix.net> wrote:

I guess I was thinking, but forgot to convey to the keyboard, that the
existence of a non-empty extra_check_hooks chain on a SUSET GUC (which
could only have been attached from a shared preload library) would
implicitly change SUSET to mean settable whenever accepted by the hook(s).

Sure, but the hook still needs a way to know which users are entitled
to set the GUC.

I was contemplating a version 0 with only that minimal support in core
for allowing a shared preload library to set such hooks (and allowing
include-with-a-role in config files), assuming service providers already
do sophisticated building of stuff to construct the environments they
provide, and a C shared object with hooks that enforce their designed
constraints wouldn't be an onerous burden on top of that.

Such providers could then be the laboratories of democracy building
various forms of such things, and if one of those ends up having a
reasonably general configuration mechanism and gets offered as a
contrib module later or for inclusion in core, well, that's version 0.5.

Regards,
-Chap

#17Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#15)
Re: Granting control of SUSET gucs to non-superusers

Greetings,

* Robert Haas (robertmhaas@gmail.com) wrote:

On Mon, May 3, 2021 at 12:25 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

As things stand, all custom variables defined via the DefineCustom{Bool,Int,Real,String,Enum}Variable are placed in the CUSTOM_OPTIONS config_group. We could add a role for controlling any SUSET CUSTOM_OPTIONS GUCs, or we could extend those functions to take a config_group option, or perhaps some of both. I haven't thought too much yet about whether allowing extensions to place a custom GUC into one of the predefined groups would be problematic. Any thoughts on that?

Well...

One idea would be to get rid of PGC_SUSET altogether and instead have
a set of flags associated with each GUC, like PGF_SERVER_LOG,
PGF_CORRUPT_DATA, PGF_CRASH_SERVER. Then you could associate those
flags with particular predefined roles and grant them out to whoever
you want.

So if a GUC is flagged PGF_SERVER_LOG|PGF_CRASH_SERVER, then the
assumption is that it's security-sensitive because it both lets you
alter the contents of the server log and also lets you crash the
server. If you are granted both pg_server_log and pg_crash_server, you
can set it, otherwise not.

This is just wild brainstorming, but my point is that I don't think
doing it by options groups is particularly good, because it doesn't
really have any relationship to why those things are marked SUSET in
the first place. To take an example involving functions rather than
GUCs, the pageinspect functions are super-user only because you can
crash the server by inspecting malformed data that you supply as an
arbitrarily literal, but AFAIK the functions in pgstattuple have no
similar hazard, and are just super-only because we don't really know
who the superuser wants to authorize, and maybe it's not everybody. So
those cases are really different, even though both are extensions. I
think the same likely holds true for GUCs.

In general, I agree that we should be looking at predefined roles as
being similar to the Linux capabilities system- defining certain kinds
of operations which the user who has that role is allowed to do, and
then both in-core and extensions can make decisions based on what
capabilities the user has been GRANT'd.

Hopefully that would limit the amount of cases where a given capability
ends up being overly broad while at the same time allowing extensions to
sensibly be able to use the defined capabilities for their own needs.

As we do in other places, we should make it clear when a certain
capability allows a user with that capability to gain superuser access
as that may not always be clear to a user.

One thing that seems missing from this discussion and is part of what
paused my effort on the 'admin' role proposed towards the end of the
last cycle is that we really need to consider how this all plays with
ALTER SYSTEM and not just SUSET GUCs but also other (eg: POSTMASTER,
SIGHUP) GUCs. That is- imv we should have a sensible solution for
more-or-less all GUCs and which would allow a non-superuser to be able
to set POSTMASTER and SIGHUP GUCs (and perhaps others..) through
ALTER SYSTEM.

Thanks,

Stephen

#18Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephen Frost (#17)
Re: Granting control of SUSET gucs to non-superusers

Stephen Frost <sfrost@snowman.net> writes:

One thing that seems missing from this discussion and is part of what
paused my effort on the 'admin' role proposed towards the end of the
last cycle is that we really need to consider how this all plays with
ALTER SYSTEM and not just SUSET GUCs but also other (eg: POSTMASTER,
SIGHUP) GUCs.

Yeah, I'd meant to bring that up too. The ability to use ALTER
SYSTEM freely is probably a much bigger use-case than messing with
SUSET variables within one's own session.

I'm still of the opinion that slicing and dicing this at the per-GUC
level is a huge waste of effort. Just invent one role that lets
grantees set any GUC, document it as being superuser-equivalent,
and be done.

regards, tom lane

#19Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#17)
Re: Granting control of SUSET gucs to non-superusers

On Mon, May 3, 2021 at 2:41 PM Stephen Frost <sfrost@snowman.net> wrote:

In general, I agree that we should be looking at predefined roles as
being similar to the Linux capabilities system- defining certain kinds
of operations which the user who has that role is allowed to do, and
then both in-core and extensions can make decisions based on what
capabilities the user has been GRANT'd.

Cool.

Hopefully that would limit the amount of cases where a given capability
ends up being overly broad while at the same time allowing extensions to
sensibly be able to use the defined capabilities for their own needs.

Yeah. I think it will be a little tricky to get right, as some of the
cases are a bit subjective, I think.

As we do in other places, we should make it clear when a certain
capability allows a user with that capability to gain superuser access
as that may not always be clear to a user.

+1.

One thing that seems missing from this discussion and is part of what
paused my effort on the 'admin' role proposed towards the end of the
last cycle is that we really need to consider how this all plays with
ALTER SYSTEM and not just SUSET GUCs but also other (eg: POSTMASTER,
SIGHUP) GUCs. That is- imv we should have a sensible solution for
more-or-less all GUCs and which would allow a non-superuser to be able
to set POSTMASTER and SIGHUP GUCs (and perhaps others..) through
ALTER SYSTEM.

I missed the earlier discussion on this topic, but I agree that this
is very important. I think that the discussion of capabilities might
help us get there. For instance, if I'm a service provider, and I give
user "bob" the pg_put_whatever_you_want_in_the_server_log role, and
GUCs are tagged so we know what GUCs that affects, then it seems
natural to me to allow Bob to set those GUCs via ALTER SYSTEM as well
as via ALTER USER or ALTER DATABASE. However, if I don't give him the
pg_frob_shell_commands role, he can't set archive_command.

--
Robert Haas
EDB: http://www.enterprisedb.com

#20Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#18)
Re: Granting control of SUSET gucs to non-superusers

On Mon, May 3, 2021 at 2:48 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

I'm still of the opinion that slicing and dicing this at the per-GUC
level is a huge waste of effort. Just invent one role that lets
grantees set any GUC, document it as being superuser-equivalent,
and be done.

If you want to grant someone full superuser rights, you can do that
already. The trick is what to do when you want someone to be able to
administer the cluster in a meaningful way without giving them full
superuser rights.

I agree that in some cases it's fine to have predefined roles that are
known to permit easy escalation to superuser privileges, like
pg_execute_server_program. It doesn't provide any real security, but
like you said, it can help prevent mistakes. However, there is a real
use cases for a privileged user who cannot be permitted to escalate to
superuser or to the OS account, but still needs to be able to do some
administration of the cluster. The scenario Mark laid out in his
original post is very common. In fact, it may already be the dominant
model for PostgreSQL deployment, and if it isn't now, it will be in 5
years. Letting each individual company that's providing a hosted
PostgreSQL solution hack up its own solution to that problem, all of
which are subtly incompatible with each other and with upstream, is
not good for users or the project.

--
Robert Haas
EDB: http://www.enterprisedb.com

#21Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#20)
Re: Granting control of SUSET gucs to non-superusers

Greetings,

* Robert Haas (robertmhaas@gmail.com) wrote:

On Mon, May 3, 2021 at 2:48 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

I'm still of the opinion that slicing and dicing this at the per-GUC
level is a huge waste of effort. Just invent one role that lets
grantees set any GUC, document it as being superuser-equivalent,
and be done.

If you want to grant someone full superuser rights, you can do that
already. The trick is what to do when you want someone to be able to
administer the cluster in a meaningful way without giving them full
superuser rights.

I would suggest that both are useful, but the one-big-hammer does
nothing to answer the use-case which was brought up on this particular
thread (which is also certainly not the first time this has been
desired). Instead, I would imagine that there would be a set of
predefined roles for the capabilities and then we might have another
role which is akin to 'pg_monitor' but is 'pg_admin' which is GRANT'd a
bunch of those capabilities and explicitly documented to be able to
become a superuser if they wished to.

Perhaps we would also have a "pg_notsuperuser_admin" which would be
GRANT'd all the capabilities, excluding the ones that could be used to
gain superuser access.

As has also been discussed recently, one of the big missing capabilities
for a "pg_notsuperuser_admin" is a 'create role' capability. I realize
that's not exactly the same as GUCs but it's a big part of what's
missing to make all of this "run a service where the 'DBA' can do
everything except get out to the OS" stuff work out of the box.

Thanks,

Stephen

#22Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Mark Dilger (#1)
1 attachment(s)
Re: Granting control of SUSET gucs to non-superusers

On Apr 30, 2021, at 4:19 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

Hackers,

PostgreSQL defines a number of GUCs that can only be set by superusers. I would like to support granting privileges on subsets of these to non-superuser roles, inspired by Stephen Frost's recent work on pg_read_all_data and pg_write_all_data roles.

The specific use case motivating this work is that of a PostgreSQL service provider. The provider guarantees certain aspects of the service, such as periodic backups, replication, uptime, availability, etc., while making no guarantees of other aspects, such as performance associated with the design of the schema or the queries executed. The provider should be able to grant to the tenant privileges to set any GUC which cannot be used to "escape the sandbox" and interfere with the handful of metrics being guaranteed. Given that the guarantees made by one provider may differ from those made by another, the exact set of GUCs which the provider allows the tenant to control may differ.

By my count, there are currently 50 such GUCs, already broken down into 15 config groups. Creating a single new role pg_set_all_gucs seems much too coarse a control, but creating 50 new groups may be excessive. We could certainly debate which GUCs could be used to escape the sandbox vs. which ones could not, but I would prefer a design that allows the provider to make that determination. The patch I would like to submit would only give the provider the mechanism for controlling these things, but would not make the security choices for them.

Do folks think it would make sense to create a role per config group? Adding an extra 15 default roles seems high to me, but organizing the feature this way would make the roles easier to document, because there would be a one-to-one correlation between the roles and the config groups.

I have a WIP patch that I'm not attaching, but if I get any feedback, I might be able to adjust the patch before the first version posted. The basic idea is that it allows things like:

GRANT pg_set_stats_monitoring TO tenant_role;

And then tenant_role could, for example

SET log_parser_stats TO off;

Ok, here is the first version of the patch for the list (though it is the second version I developed.) The patch is quite long, but most of it is mechanical.

Overview:

- guc.h defines a new set of privilege masks
- pg_authid.dat defines a new set of roles, with a one-to-one correlation to the privilege masks
- guc_tables.h extends struct config_generic to include a privilege mask field
- guc.c extends the structs for all variables to include a mask of privileges required to set the variable, and checks the privileges against the current user's role membership when trying to SET or ALTER SYSTEM SET
- DefineCustom*Variable functions are extended to take a privileges mask, and all calls to these functions are extended to include privileges for the custom variable being defined
- new regression tests guc_priv_admin and guc_priv_tenant are defined. The first creates a role "admin" and assigns it membership to all the new roles added in pg_authid.dat. The second creates a role "tenant" and assigns it to just the few new roles that appear reasonable for a tenant. Both tests then go on to SET SESSION AUTHORIZATION to the new role and then attempt to SET, RESET, ALTER SYSTEM SET, and ALTER SYSTEM RESET most of the variables defined in guc.c. These tests might be too verbose to be worth committing, but I thought they made an easy reference for those reviewing the patch who just want to quickly see the behavior.

One of the consequences of the design is that if a user belongs to a role with permission to SET a variable, they can also ALTER SYSTEM SET that variable, at least to the extent that ALTER SYSTEM SET would allow the superuser to do so. Not all variables can be changed via ALTER SYSTEM SET, though. This means that some variables, "data_directory" for example, cannot be changed by any of the new roles. The first version of the patch, never posted, allowed 'include' directives in postgresql.conf to be annotated with roles, such that the included file would be processed with privileges restricted to just the listed roles. This patch doesn't bother, since everything we are likely to care about can be performed using ALTER SYSTEM SET, but I can resurrect the 'include' directive logic if there is general demand for that.

Any user can still SET a PGC_USERSET variable, just as before this patch, but the default permission to do so does not translate into permission to ALTER SYSTEM SET that same variable. For that, the user needs to belong to a role with permission to set the variable, which in general for PGC_USERSET variables is the "pg_internal_settings" role. I'm not sure this is the right role for all of these, for example "password_encryption" seems like a better fit for role "pg_interface_settings", but for the first patch posted to the list I didn't fuss too much about roles assigned to PGC_USERSET variables.

I didn't bother updating the docs yet, as I doubt the set of privileges/roles in this patch will survive contact with this list. They are:

pg_internal_settings:
- changes to purely internal behavior
pg_stats_settings:
- changes to stats collection
pg_maintenance_settings
- changes to autovacuum behavior
pg_storage_settings
- changes to dealing with storage errors, such as fsync or checksum failure
pg_wal_settings
- changes to wal, recovery, and replication settings
pg_logging_settings
- changes to what gets logged
pg_interface_settings
- changes to the external interface, such as port, authentication, etc.
pg_resource_usage
- changes to memory, cpu, and disk usage
pg_filesystem_security
- changes to where files and directories are located, permissions bits on
files and directories, etc.
pg_exec_command
- changes to external commands that get executed
pg_server_configuration
- changes to the configuration of the server vis-a-vis the operating system
facilities, such as shared memory model used
pg_security_settings
- changes that relax security, such as turning off privilege checking,
changing security critical logging settings, adjusting developer options
which have security implications, or changing settings which could be
used to create a denial of services attack

Note that some GUC variables have more than one privilege bit set, meaning a user must belong to all corresponding roles before they can change the setting. For example, "log_file_mode" requires both pg_filesystem_security and pg_logging_settings.

Attachments:

v2-0001-Delegating-setting-of-GUC-variables.patchapplication/octet-stream; name=v2-0001-Delegating-setting-of-GUC-variables.patch; x-unix-mode=0644Download
From 50d9d497b646b37fc29cd62ce319c1142125785e Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Wed, 12 May 2021 07:04:14 -0700
Subject: [PATCH v2] Delegating setting of GUC variables

Creating roles with permission to run SET and ALTER SYSTEM SET
commands for variables which otherwise require superuser privileges.
---
 contrib/auth_delay/auth_delay.c               |    1 +
 contrib/auto_explain/auto_explain.c           |   12 +
 contrib/pg_prewarm/autoprewarm.c              |    2 +
 .../pg_stat_statements/pg_stat_statements.c   |    5 +
 contrib/pg_trgm/trgm_op.c                     |    3 +
 contrib/sepgsql/hooks.c                       |    2 +
 src/backend/utils/misc/guc.c                  |  778 ++++--
 src/include/catalog/pg_authid.dat             |   60 +
 src/include/utils/guc.h                       |   22 +
 src/include/utils/guc_tables.h                |    1 +
 src/pl/plperl/plperl.c                        |    8 +-
 src/pl/plpgsql/src/pl_handler.c               |   10 +-
 src/pl/tcl/pltcl.c                            |    4 +-
 .../modules/delay_execution/delay_execution.c |    1 +
 .../ssl_passphrase_func.c                     |    1 +
 src/test/modules/worker_spi/worker_spi.c      |    3 +
 src/test/regress/expected/guc_priv_admin.out  | 1844 ++++++++++++++
 src/test/regress/expected/guc_priv_tenant.out | 2237 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/guc_priv_admin.sql       | 1470 +++++++++++
 src/test/regress/sql/guc_priv_tenant.sql      | 1461 +++++++++++
 21 files changed, 7746 insertions(+), 181 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_admin.out
 create mode 100644 src/test/regress/expected/guc_priv_tenant.out
 create mode 100644 src/test/regress/sql/guc_priv_admin.sql
 create mode 100644 src/test/regress/sql/guc_priv_tenant.sql

diff --git a/contrib/auth_delay/auth_delay.c b/contrib/auth_delay/auth_delay.c
index 5820ac328d..6a5105aa61 100644
--- a/contrib/auth_delay/auth_delay.c
+++ b/contrib/auth_delay/auth_delay.c
@@ -63,6 +63,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_INTERFACE_SETTINGS,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index e9092ba359..11b5687136 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -100,6 +100,7 @@ _PG_init(void)
 							-1,
 							-1, INT_MAX,
 							PGC_SUSET,
+							GUC_LOGGING_SETTINGS,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
@@ -111,6 +112,7 @@ _PG_init(void)
 							 &auto_explain_log_analyze,
 							 false,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -122,6 +124,7 @@ _PG_init(void)
 							 &auto_explain_log_settings,
 							 false,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -133,6 +136,7 @@ _PG_init(void)
 							 &auto_explain_log_verbose,
 							 false,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -144,6 +148,7 @@ _PG_init(void)
 							 &auto_explain_log_buffers,
 							 false,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE,
 							 0,
 							 NULL,
 							 NULL,
@@ -155,6 +160,7 @@ _PG_init(void)
 							 &auto_explain_log_wal,
 							 false,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -166,6 +172,7 @@ _PG_init(void)
 							 &auto_explain_log_triggers,
 							 false,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -178,6 +185,7 @@ _PG_init(void)
 							 EXPLAIN_FORMAT_TEXT,
 							 format_options,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -190,6 +198,7 @@ _PG_init(void)
 							 LOG,
 							 loglevel_options,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -201,6 +210,7 @@ _PG_init(void)
 							 &auto_explain_log_nested_statements,
 							 false,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -212,6 +222,7 @@ _PG_init(void)
 							 &auto_explain_log_timing,
 							 true,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -225,6 +236,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_SUSET,
+							 GUC_LOGGING_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c
index b3f73ea92d..55432c502c 100644
--- a/contrib/pg_prewarm/autoprewarm.c
+++ b/contrib/pg_prewarm/autoprewarm.c
@@ -116,6 +116,7 @@ _PG_init(void)
 							300,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_INTERNAL_SETTINGS,
 							GUC_UNIT_S,
 							NULL,
 							NULL,
@@ -131,6 +132,7 @@ _PG_init(void)
 							 &autoprewarm,
 							 true,
 							 PGC_POSTMASTER,
+							 GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c
index 77ca5abcdc..525d951cb8 100644
--- a/contrib/pg_stat_statements/pg_stat_statements.c
+++ b/contrib/pg_stat_statements/pg_stat_statements.c
@@ -380,6 +380,7 @@ _PG_init(void)
 							100,
 							INT_MAX,
 							PGC_POSTMASTER,
+							GUC_STATS_SETTINGS | GUC_RESOURCE_USAGE,
 							0,
 							NULL,
 							NULL,
@@ -392,6 +393,7 @@ _PG_init(void)
 							 PGSS_TRACK_TOP,
 							 track_options,
 							 PGC_SUSET,
+							 GUC_STATS_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -403,6 +405,7 @@ _PG_init(void)
 							 &pgss_track_utility,
 							 true,
 							 PGC_SUSET,
+							 GUC_STATS_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -414,6 +417,7 @@ _PG_init(void)
 							 &pgss_track_planning,
 							 false,
 							 PGC_SUSET,
+							 GUC_STATS_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -425,6 +429,7 @@ _PG_init(void)
 							 &pgss_save,
 							 true,
 							 PGC_SIGHUP,
+							 GUC_STATS_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_trgm/trgm_op.c b/contrib/pg_trgm/trgm_op.c
index fb38135f7a..33c93084ee 100644
--- a/contrib/pg_trgm/trgm_op.c
+++ b/contrib/pg_trgm/trgm_op.c
@@ -72,6 +72,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_INTERNAL_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -84,6 +85,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_INTERNAL_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
@@ -96,6 +98,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_INTERNAL_SETTINGS,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/sepgsql/hooks.c b/contrib/sepgsql/hooks.c
index 34de6158d6..4ba78767cd 100644
--- a/contrib/sepgsql/hooks.c
+++ b/contrib/sepgsql/hooks.c
@@ -431,6 +431,7 @@ _PG_init(void)
 							 &sepgsql_permissive,
 							 false,
 							 PGC_SIGHUP,
+							 GUC_SECURITY_SETTINGS,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
@@ -449,6 +450,7 @@ _PG_init(void)
 							 &sepgsql_debug_audit,
 							 false,
 							 PGC_USERSET,
+							 GUC_SECURITY_SETTINGS,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 0a180341c2..a5b0ec7f66 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -939,6 +939,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of sequential-scan plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_seqscan,
@@ -949,6 +950,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-scan plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_indexscan,
@@ -959,6 +961,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-only-scan plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_indexonlyscan,
@@ -969,6 +972,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of bitmap-scan plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_bitmapscan,
@@ -979,6 +983,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of TID scan plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_tidscan,
@@ -989,6 +994,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of explicit sort steps."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_sort,
@@ -998,7 +1004,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of incremental sort steps."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&enable_incremental_sort,
 		true,
@@ -1008,6 +1015,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hashed aggregation plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_hashagg,
@@ -1018,6 +1026,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of materialization."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_material,
@@ -1028,6 +1037,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_resultcache", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of result caching."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_resultcache,
@@ -1038,6 +1048,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of nested-loop join plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_nestloop,
@@ -1048,6 +1059,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of merge join plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_mergejoin,
@@ -1058,6 +1070,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hash join plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_hashjoin,
@@ -1068,6 +1081,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of gather merge plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_gathermerge,
@@ -1078,6 +1092,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise join."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_join,
@@ -1088,6 +1103,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise aggregation and grouping."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_aggregate,
@@ -1098,6 +1114,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel append plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_append,
@@ -1108,6 +1125,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel hash plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_hash,
@@ -1120,6 +1138,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Allows the query planner and executor to compare partition "
 						 "bounds to conditions in the query to determine which "
 						 "partitions must be scanned."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_partition_pruning,
@@ -1130,6 +1149,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of async append plans."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_async_append,
@@ -1141,6 +1161,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables genetic query optimization."),
 			gettext_noop("This algorithm attempts to do planning without "
 						 "exhaustive searching."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_geqo,
@@ -1152,6 +1173,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"is_superuser", PGC_INTERNAL, UNGROUPED,
 			gettext_noop("Shows whether the current user is a superuser."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&session_auth_is_superuser,
@@ -1161,7 +1183,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Enables advertising the server via Bonjour."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&enable_bonjour,
 		false,
@@ -1170,7 +1193,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Collects transaction commit time."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&track_commit_timestamp,
 		false,
@@ -1179,7 +1203,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Enables SSL connections."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&EnableSSL,
 		false,
@@ -1188,7 +1213,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Also use ssl_passphrase_command during server reload."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&ssl_passphrase_command_supports_reload,
 		false,
@@ -1197,7 +1223,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Give priority to server ciphersuite order."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&SSLPreferServerCiphers,
 		true,
@@ -1209,7 +1236,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("The server will use the fsync() system call in several places to make "
 						 "sure that updates are physically written to disk. This insures "
 						 "that a database cluster will recover to a consistent state after "
-						 "an operating system or hardware crash.")
+						 "an operating system or hardware crash."),
+			GUC_WAL_SETTINGS
 		},
 		&enableFsync,
 		true,
@@ -1224,6 +1252,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(but still report a warning), and continue processing. This "
 						 "behavior could cause crashes or other serious problems. Only "
 						 "has an effect if checksums are enabled."),
+			GUC_STORAGE_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_checksum_failure,
@@ -1238,6 +1267,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "zero_damaged_pages to true causes the system to instead report a "
 						 "warning, zero out the damaged page, and continue processing. This "
 						 "behavior will destroy data, namely all the rows on the damaged page."),
+			GUC_STORAGE_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&zero_damaged_pages,
@@ -1257,6 +1287,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "crashes, data loss, propagate or hide corruption, "
 						 "or other serious problems. Only has an effect "
 						 "during recovery or in standby mode."),
+			GUC_STORAGE_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_invalid_pages,
@@ -1270,7 +1301,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "only partially written to disk.  During recovery, the row changes "
 						 "stored in WAL are not enough to recover.  This option writes "
 						 "pages when first modified after a checkpoint to WAL so full recovery "
-						 "is possible.")
+						 "is possible."),
+			GUC_WAL_SETTINGS
 		},
 		&fullPageWrites,
 		true,
@@ -1280,7 +1312,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&wal_log_hints,
 		false,
@@ -1290,7 +1323,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_compression", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Compresses full-page writes written in WAL file."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&wal_compression,
 		false,
@@ -1300,7 +1334,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Writes zeroes to new WAL files before first use."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&wal_init_zero,
 		true,
@@ -1310,7 +1345,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_recycle", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Recycles WAL files by renaming them."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&wal_recycle,
 		true,
@@ -1320,7 +1356,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs each checkpoint."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_checkpoints,
 		false,
@@ -1329,7 +1366,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs each successful connection."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&Log_connections,
 		false,
@@ -1338,7 +1376,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs end of a session, including duration."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&Log_disconnections,
 		false,
@@ -1347,7 +1386,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs each replication command."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_replication_commands,
 		false,
@@ -1357,6 +1397,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether the running server has assertion checks enabled."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&assert_enabled,
@@ -1371,7 +1412,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Terminate session on any error."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&ExitOnAnyError,
 		false,
@@ -1380,7 +1422,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Reinitialize server after backend crash."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&restart_after_crash,
 		true,
@@ -1389,7 +1432,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"remove_temp_files_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Remove temporary files after backend crash."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&remove_temp_files_after_crash,
 		true,
@@ -1399,7 +1443,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_duration", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs the duration of each completed SQL statement."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_duration,
 		false,
@@ -1408,7 +1453,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's parse tree."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&Debug_print_parse,
 		false,
@@ -1417,7 +1463,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's rewritten parse tree."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&Debug_print_rewritten,
 		false,
@@ -1426,7 +1473,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's execution plan."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&Debug_print_plan,
 		false,
@@ -1435,7 +1483,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Indents parse and plan tree displays."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&Debug_pretty_print,
 		true,
@@ -1444,7 +1493,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"compute_query_id", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Compute query identifiers."),
-			NULL
+			NULL,
+			GUC_STATS_SETTINGS
 		},
 		&compute_query_id,
 		false,
@@ -1453,7 +1503,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_parser_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes parser performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_parser_stats,
 		false,
@@ -1462,7 +1513,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_planner_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes planner performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_planner_stats,
 		false,
@@ -1471,7 +1523,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_executor_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes executor performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_executor_stats,
 		false,
@@ -1480,7 +1533,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_statement_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes cumulative performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_statement_stats,
 		false,
@@ -1491,6 +1545,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&log_btree_build_stats,
@@ -1504,7 +1559,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Collects information about executing commands."),
 			gettext_noop("Enables the collection of information on the currently "
 						 "executing command of each session, along with "
-						 "the time at which that command began execution.")
+						 "the time at which that command began execution."),
+			GUC_STATS_SETTINGS
 		},
 		&pgstat_track_activities,
 		true,
@@ -1513,7 +1569,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_counts", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects statistics on database activity."),
-			NULL
+			NULL,
+			GUC_STATS_SETTINGS
 		},
 		&pgstat_track_counts,
 		true,
@@ -1522,7 +1579,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for database I/O activity."),
-			NULL
+			NULL,
+			GUC_STATS_SETTINGS
 		},
 		&track_io_timing,
 		false,
@@ -1531,7 +1589,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_wal_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for WAL I/O activity."),
-			NULL
+			NULL,
+			GUC_STATS_SETTINGS
 		},
 		&track_wal_io_timing,
 		false,
@@ -1541,7 +1600,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"update_process_title", PGC_SUSET, PROCESS_TITLE,
 			gettext_noop("Updates the process title to show the active SQL command."),
-			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
+			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server."),
+			GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS
 		},
 		&update_process_title,
 #ifdef WIN32
@@ -1555,7 +1615,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"autovacuum", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Starts the autovacuum subprocess."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE
 		},
 		&autovacuum_start_daemon,
 		true,
@@ -1566,6 +1627,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_notify,
@@ -1578,6 +1640,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lock usage."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_locks,
@@ -1588,6 +1651,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about user lock usage."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_userlocks,
@@ -1598,6 +1662,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lightweight lock usage."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lwlocks,
@@ -1608,6 +1673,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Debug_deadlocks,
@@ -1619,7 +1685,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs long lock waits."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_lock_waits,
 		false,
@@ -1628,7 +1695,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs standby recovery conflict waits."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_recovery_conflict_waits,
 		false,
@@ -1640,7 +1708,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("By default, connection logs only show the IP address "
 						 "of the connecting host. If you want them to show the host name you "
 						 "can turn this on, but depending on your host name resolution "
-						 "setup it might impose a non-negligible performance penalty.")
+						 "setup it might impose a non-negligible performance penalty."),
+			GUC_INTERFACE_SETTINGS | GUC_LOGGING_SETTINGS
 		},
 		&log_hostname,
 		false,
@@ -1653,7 +1722,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(or NULL = expr) are treated as expr IS NULL, that is, they "
 						 "return true if expr evaluates to the null value, and false "
 						 "otherwise. The correct behavior of expr = NULL is to always "
-						 "return null (unknown).")
+						 "return null (unknown)."),
+			GUC_INTERNAL_SETTINGS
 		},
 		&Transform_null_equals,
 		false,
@@ -1662,7 +1732,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"db_user_namespace", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Enables per-database user names."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&Db_user_namespace,
 		false,
@@ -1672,6 +1743,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default read-only status of new transactions."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT
 		},
 		&DefaultXactReadOnly,
@@ -1682,6 +1754,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's read-only status."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactReadOnly,
@@ -1691,7 +1764,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default deferrable status of new transactions."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&DefaultXactDeferrable,
 		false,
@@ -1701,6 +1775,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactDeferrable,
@@ -1710,7 +1785,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Enable row security."),
-			gettext_noop("When enabled, row security will be applied to all users.")
+			gettext_noop("When enabled, row security will be applied to all users."),
+			GUC_INTERNAL_SETTINGS
 		},
 		&row_security,
 		true,
@@ -1719,7 +1795,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&check_function_bodies,
 		true,
@@ -1730,7 +1807,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enable input of NULL elements in arrays."),
 			gettext_noop("When turned on, unquoted NULL in an array input "
 						 "value means a null value; "
-						 "otherwise it is taken literally.")
+						 "otherwise it is taken literally."),
+			GUC_INTERNAL_SETTINGS
 		},
 		&Array_nulls,
 		true,
@@ -1746,6 +1824,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("WITH OIDS is no longer supported; this can only be false."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
 		},
 		&default_with_oids,
@@ -1755,7 +1834,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
-			NULL
+			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS
 		},
 		&Logging_collector,
 		false,
@@ -1764,7 +1844,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Truncate existing log files of same name during log rotation."),
-			NULL
+			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS
 		},
 		&Log_truncate_on_rotation,
 		false,
@@ -1776,6 +1857,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit information about resource usage in sorting."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_sort,
@@ -1790,6 +1872,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generate debugging output for synchronized scanning."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_syncscan,
@@ -1805,6 +1888,7 @@ static struct config_bool ConfigureNamesBool[] =
 			"optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enable bounded sorting using heap sort."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&optimize_bounded_sort,
@@ -1818,6 +1902,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit WAL-related debugging output."),
 			NULL,
+			GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&XLOG_DEBUG,
@@ -1830,6 +1915,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether datetimes are integer based."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&integer_datetimes,
@@ -1840,7 +1926,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&pg_krb_caseins_users,
 		false,
@@ -1850,7 +1937,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Warn about backslash escapes in ordinary string literals."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&escape_string_warning,
 		true,
@@ -1861,6 +1949,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Causes '...' strings to treat backslashes literally."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT
 		},
 		&standard_conforming_strings,
@@ -1871,7 +1960,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enable synchronized sequential scans."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&synchronize_seqscans,
 		true,
@@ -1881,7 +1971,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets whether to include or exclude transaction with recovery target."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recoveryTargetInclusive,
 		true,
@@ -1891,7 +1982,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
 			gettext_noop("Allows connections and queries during recovery."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&EnableHotStandby,
 		true,
@@ -1901,7 +1993,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&hot_standby_feedback,
 		false,
@@ -1912,6 +2005,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether hot standby is currently active."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&in_hot_standby,
@@ -1923,6 +2017,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allows modifications of the structure of system tables."),
 			NULL,
+			GUC_ALL_PRIVILEGES,
 			GUC_NOT_IN_SAMPLE
 		},
 		&allowSystemTableMods,
@@ -1935,6 +2030,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Disables reading from system indexes."),
 			gettext_noop("It does not prevent updating the indexes, so it is safe "
 						 "to use.  The worst consequence is slowness."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&IgnoreSystemIndexes,
@@ -1946,7 +2042,8 @@ static struct config_bool ConfigureNamesBool[] =
 		{"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
 			gettext_noop("Skips privilege checks when reading or modifying large objects, "
-						 "for compatibility with PostgreSQL releases prior to 9.0.")
+						 "for compatibility with PostgreSQL releases prior to 9.0."),
+			GUC_SECURITY_SETTINGS
 		},
 		&lo_compat_privileges,
 		false,
@@ -1957,6 +2054,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("When generating SQL fragments, quote all identifiers."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 		},
 		&quote_all_identifiers,
 		false,
@@ -1967,6 +2065,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether data checksums are turned on for this cluster."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_checksums,
@@ -1977,7 +2076,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS
 		},
 		&syslog_sequence_numbers,
 		true,
@@ -1987,7 +2087,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS
 		},
 		&syslog_split_messages,
 		true,
@@ -1998,6 +2099,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"parallel_leader_participation", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
 			gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&parallel_leader_participation,
@@ -2009,6 +2111,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Allow JIT compilation."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_enabled,
@@ -2020,6 +2123,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with debugger."),
 			NULL,
+			GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_debugging_support,
@@ -2037,6 +2141,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_dump_bitcode,
@@ -2048,6 +2153,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of expressions."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_expressions,
@@ -2059,6 +2165,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with perf profiler."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_profiling_support,
@@ -2076,6 +2183,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of tuple deforming."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_tuple_deforming,
@@ -2086,6 +2194,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Whether to continue running after a failure to sync data files."),
+			NULL,
+			GUC_STORAGE_SETTINGS
 		},
 		&data_sync_retry,
 		false,
@@ -2095,6 +2205,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
+			NULL,
+			GUC_WAL_SETTINGS,
 		},
 		&wal_receiver_create_temp_slot,
 		false,
@@ -2115,6 +2227,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Forces a switch to the next WAL file if a "
 						 "new file has not been started within N seconds."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&XLogArchiveTimeout,
@@ -2125,6 +2238,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup after authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_INTERFACE_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PostAuthDelay,
@@ -2135,7 +2249,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Sets the default statistics target."),
 			gettext_noop("This applies to table columns that have not had a "
-						 "column-specific target set via ALTER TABLE SET STATISTICS.")
+						 "column-specific target set via ALTER TABLE SET STATISTICS."),
+			GUC_INTERNAL_SETTINGS
 		},
 		&default_statistics_target,
 		100, 1, 10000,
@@ -2148,6 +2263,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will merge subqueries into upper "
 						 "queries if the resulting FROM list would have no more than "
 						 "this many items."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&from_collapse_limit,
@@ -2161,6 +2277,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will flatten explicit JOIN "
 						 "constructs into lists of FROM items whenever a "
 						 "list of no more than this many items would result."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&join_collapse_limit,
@@ -2171,6 +2288,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&geqo_threshold,
@@ -2181,6 +2299,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_effort,
@@ -2191,6 +2310,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of individuals in the population."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_pool_size,
@@ -2201,6 +2321,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of iterations of the algorithm."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_generations,
@@ -2213,6 +2334,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
 			gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
 			NULL,
+			GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&DeadlockTimeout,
@@ -2224,6 +2346,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&max_standby_archive_delay,
@@ -2235,6 +2358,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&max_standby_streaming_delay,
@@ -2246,6 +2370,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the minimum delay for applying changes during recovery."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&recovery_min_apply_delay,
@@ -2257,6 +2382,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&wal_receiver_status_interval,
@@ -2268,6 +2394,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum wait time to receive data from the sending server."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&wal_receiver_timeout,
@@ -2278,7 +2405,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the maximum number of concurrent connections."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&MaxConnections,
 		100, 1, MAX_BACKENDS,
@@ -2289,7 +2417,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the number of connection slots reserved for superusers."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&ReservedBackends,
 		3, 0, MAX_BACKENDS,
@@ -2300,6 +2429,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Amount of dynamic shared memory reserved at startup."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_MB
 		},
 		&min_dynamic_shared_memory,
@@ -2315,6 +2445,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the number of shared memory buffers used by the server."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_BLOCKS
 		},
 		&NBuffers,
@@ -2326,6 +2457,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_buffers", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of temporary buffers used by each session."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN
 		},
 		&num_temp_buffers,
@@ -2336,7 +2468,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"port", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the TCP port the server listens on."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&PostPortNumber,
 		DEF_PGPORT, 1, 65535,
@@ -2351,7 +2484,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_INTERFACE_SETTINGS
 		},
 		&Unix_socket_permissions,
 		0777, 0000, 0777,
@@ -2365,7 +2499,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			 GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS
 		},
 		&Log_file_mode,
 		0600, 0000, 0777,
@@ -2380,6 +2515,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "in the form accepted by the chmod and umask system "
 						 "calls. (To use the customary octal format the number "
 						 "must start with a 0 (zero).)"),
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_directory_mode,
@@ -2393,6 +2529,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This much memory can be used by each internal "
 						 "sort operation and hash table before switching to "
 						 "temporary disk files."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_KB | GUC_EXPLAIN
 		},
 		&work_mem,
@@ -2404,6 +2541,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used for maintenance operations."),
 			gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
@@ -2416,6 +2554,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum memory to be used for logical decoding."),
 			gettext_noop("This much memory can be used by each internal "
 						 "reorder buffer before spilling to disk."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&logical_decoding_work_mem,
@@ -2432,6 +2571,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum stack depth, in kilobytes."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_KB
 		},
 		&max_stack_depth,
@@ -2443,6 +2583,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
 			gettext_noop("Limits the total size of all temporary files used by each process."),
 			gettext_noop("-1 means no limit."),
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_KB
 		},
 		&temp_file_limit,
@@ -2453,7 +2594,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&VacuumCostPageHit,
 		1, 0, 10000,
@@ -2463,7 +2605,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&VacuumCostPageMiss,
 		2, 0, 10000,
@@ -2473,7 +2616,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&VacuumCostPageDirty,
 		20, 0, 10000,
@@ -2483,7 +2627,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost amount available before napping."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&VacuumCostLimit,
 		200, 1, 10000,
@@ -2493,7 +2638,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_vac_cost_limit,
 		-1, -1, 10000,
@@ -2503,7 +2649,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
 			gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
-			NULL
+			NULL,
+			GUC_RESOURCE_USAGE
 		},
 		&max_files_per_process,
 		1000, 64, INT_MAX,
@@ -2516,7 +2663,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
-			NULL
+			NULL,
+			GUC_RESOURCE_USAGE
 		},
 		&max_prepared_xacts,
 		0, 0, MAX_BACKENDS,
@@ -2528,6 +2676,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the minimum OID of tables for tracking locks."),
 			gettext_noop("Is used to avoid output on system tables."),
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_oidmin,
@@ -2538,6 +2687,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_table,
@@ -2550,6 +2700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any statement."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&StatementTimeout,
@@ -2561,6 +2712,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&LockTimeout,
@@ -2572,6 +2724,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&IdleInTransactionSessionTimeout,
@@ -2583,6 +2736,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&IdleSessionTimeout,
@@ -2593,7 +2747,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a table row."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&vacuum_freeze_min_age,
 		50000000, 0, 1000000000,
@@ -2603,7 +2758,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&vacuum_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2613,7 +2769,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&vacuum_multixact_freeze_min_age,
 		5000000, 0, 1000000000,
@@ -2623,7 +2780,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&vacuum_multixact_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2633,7 +2791,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_defer_cleanup_age", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&vacuum_defer_cleanup_age,
 		0, 0, 1000000,		/* see ComputeXidHorizons */
@@ -2642,7 +2801,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&vacuum_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2651,7 +2811,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&vacuum_multixact_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2666,7 +2827,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of locks per transaction."),
 			gettext_noop("The shared lock table is sized on the assumption that "
 						 "at most max_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_RESOURCE_USAGE
 		},
 		&max_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2678,7 +2840,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of predicate locks per transaction."),
 			gettext_noop("The shared predicate lock table is sized on the assumption that "
 						 "at most max_pred_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_RESOURCE_USAGE
 		},
 		&max_predicate_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2689,7 +2852,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
 			gettext_noop("If more than this total of pages and tuples in the same relation are locked "
-						 "by a connection, those locks are replaced by a relation-level lock.")
+						 "by a connection, those locks are replaced by a relation-level lock."),
+			GUC_RESOURCE_USAGE
 		},
 		&max_predicate_locks_per_relation,
 		-2, INT_MIN, INT_MAX,
@@ -2700,7 +2864,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
 			gettext_noop("If more than this number of tuples on the same page are locked "
-						 "by a connection, those locks are replaced by a page-level lock.")
+						 "by a connection, those locks are replaced by a page-level lock."),
+			GUC_RESOURCE_USAGE
 		},
 		&max_predicate_locks_per_page,
 		2, 0, INT_MAX,
@@ -2711,6 +2876,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the maximum allowed time to complete client authentication."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_UNIT_S
 		},
 		&AuthenticationTimeout,
@@ -2723,6 +2889,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup before authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_INTERFACE_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PreAuthDelay,
@@ -2734,6 +2901,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
 			gettext_noop("Sets the size of WAL files held for standby servers."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&wal_keep_size_mb,
@@ -2745,6 +2913,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the minimum size to shrink the WAL to."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&min_wal_size_mb,
@@ -2757,6 +2926,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the WAL size that triggers a checkpoint."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&max_wal_size_mb,
@@ -2769,6 +2939,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&CheckPointTimeout,
@@ -2783,6 +2954,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Write a message to the server log if checkpoints "
 						 "caused by the filling of checkpoint segment files happens more "
 						 "frequently than this number of seconds. Zero turns off the warning."),
+			GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&CheckPointWarning,
@@ -2794,6 +2966,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_BLOCKS
 		},
 		&checkpoint_flush_after,
@@ -2805,6 +2978,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
 			NULL,
+			GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS,
 			GUC_UNIT_XBLOCKS
 		},
 		&XLOGbuffers,
@@ -2816,6 +2990,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Time between WAL flushes performed in the WAL writer."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&WalWriterDelay,
@@ -2827,6 +3002,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_XBLOCKS
 		},
 		&WalWriterFlushAfter,
@@ -2838,6 +3014,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&wal_skip_threshold,
@@ -2848,7 +3025,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
-			NULL
+			NULL,
+			GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS
 		},
 		&max_wal_senders,
 		10, 0, MAX_BACKENDS,
@@ -2859,7 +3037,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_wal_senders */
 		{"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
-			NULL
+			NULL,
+			GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS
 		},
 		&max_replication_slots,
 		10, 0, MAX_BACKENDS /* XXX? */ ,
@@ -2872,6 +3051,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Replication slots will be marked as failed, and segments released "
 						 "for deletion or recycling, if this much space is occupied by WAL "
 						 "on disk."),
+			GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&max_slot_wal_keep_size_mb,
@@ -2883,6 +3063,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum time to wait for WAL replication."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&wal_sender_timeout,
@@ -2894,7 +3075,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_delay", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Sets the delay in microseconds between transaction commit and "
 						 "flushing WAL to disk."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 			/* we have no microseconds designation, so can't supply units here */
 		},
 		&CommitDelay,
@@ -2906,7 +3088,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_siblings", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the minimum concurrent open transactions before performing "
 						 "commit_delay."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&CommitSiblings,
 		5, 0, 1000,
@@ -2919,7 +3102,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This affects real, double precision, and geometric data types. "
 						 "A zero or negative parameter value is added to the standard "
 						 "number of digits (FLT_DIG or DBL_DIG as appropriate). "
-						 "Any value greater than zero selects precise output mode.")
+						 "Any value greater than zero selects precise output mode."),
+			GUC_INTERNAL_SETTINGS
 		},
 		&extra_float_digits,
 		1, -15, 3,
@@ -2932,6 +3116,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "a sample of statements will be logged."
 						 " Sampling is determined by log_statement_sample_rate."),
 			gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
+			GUC_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_sample,
@@ -2944,6 +3129,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "all statements will be logged."),
 			gettext_noop("Zero prints all queries. -1 turns this feature off."),
+			GUC_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_statement,
@@ -2956,6 +3142,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "autovacuum actions will be logged."),
 			gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
+			GUC_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&Log_autovacuum_min_duration,
@@ -2967,6 +3154,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("When logging statements, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_LOGGING_SETTINGS,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length,
@@ -2978,6 +3166,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("When reporting an error, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length_on_error,
@@ -2989,6 +3178,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer sleep time between rounds."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_MS
 		},
 		&BgWriterDelay,
@@ -2999,7 +3189,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer maximum number of LRU pages to flush per round."),
-			NULL
+			NULL,
+			GUC_RESOURCE_USAGE
 		},
 		&bgwriter_lru_maxpages,
 		100, 0, INT_MAX / 2,	/* Same upper limit as shared_buffers */
@@ -3010,6 +3201,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_BLOCKS
 		},
 		&bgwriter_flush_after,
@@ -3023,6 +3215,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_EXPLAIN
 		},
 		&effective_io_concurrency,
@@ -3041,6 +3234,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("A variant of effective_io_concurrency that is used for maintenance work."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_EXPLAIN
 		},
 		&maintenance_io_concurrency,
@@ -3057,6 +3251,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BLOCKS
 		},
 		&backend_flush_after,
@@ -3070,6 +3265,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Maximum number of concurrent worker processes."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 		},
 		&max_worker_processes,
 		8, 0, MAX_BACKENDS,
@@ -3082,6 +3278,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of logical replication worker processes."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 		},
 		&max_logical_replication_workers,
 		4, 0, MAX_BACKENDS,
@@ -3094,6 +3291,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of table synchronization workers per subscription."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 		},
 		&max_sync_workers_per_subscription,
 		2, 0, MAX_BACKENDS,
@@ -3104,6 +3302,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N minutes."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS,
 			GUC_UNIT_MIN
 		},
 		&Log_RotationAge,
@@ -3115,6 +3314,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N kilobytes."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&Log_RotationSize,
@@ -3126,6 +3326,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of function arguments."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_function_args,
@@ -3137,6 +3338,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of index keys."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_index_keys,
@@ -3148,6 +3350,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum identifier length."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_identifier_length,
@@ -3159,6 +3362,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of a disk block."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&block_size,
@@ -3170,6 +3374,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the number of pages per disk file."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&segment_size,
@@ -3181,6 +3386,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the block size in the write ahead log."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_block_size,
@@ -3193,6 +3399,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the time to wait before retrying to retrieve WAL "
 						 "after a failed attempt."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&wal_retrieve_retry_interval,
@@ -3204,6 +3411,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of write ahead log segments."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BYTE | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_segment_size,
@@ -3217,6 +3425,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Time to sleep between autovacuum runs."),
 			NULL,
+			GUC_MAINTENANCE_SETTINGS,
 			GUC_UNIT_S
 		},
 		&autovacuum_naptime,
@@ -3226,7 +3435,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_vac_thresh,
 		50, 0, INT_MAX,
@@ -3235,7 +3445,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_vac_ins_thresh,
 		1000, -1, INT_MAX,
@@ -3244,7 +3455,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_anl_thresh,
 		50, 0, INT_MAX,
@@ -3254,7 +3466,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_freeze_max_age,
 		/*
@@ -3268,7 +3481,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_multixact_freeze_max_age,
 		400000000, 10000, 2000000000,
@@ -3278,7 +3492,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE
 		},
 		&autovacuum_max_workers,
 		3, 1, MAX_BACKENDS,
@@ -3288,7 +3503,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&max_parallel_maintenance_workers,
 		2, 0, 1024,
@@ -3299,6 +3515,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per executor node."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers_per_gather,
@@ -3310,6 +3527,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers,
@@ -3321,6 +3539,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
 			NULL,
+			GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE,
 			GUC_UNIT_KB
 		},
 		&autovacuum_work_mem,
@@ -3332,6 +3551,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"old_snapshot_threshold", PGC_POSTMASTER, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Time before a snapshot is too old to read pages changed after the snapshot was taken."),
 			gettext_noop("A value of -1 disables this feature."),
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_MIN
 		},
 		&old_snapshot_threshold,
@@ -3343,6 +3563,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between issuing TCP keepalives."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_idle,
@@ -3354,6 +3575,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between TCP keepalive retransmits."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_interval,
@@ -3365,6 +3587,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"ssl_renegotiation_limit", PGC_USERSET, CONN_AUTH_SSL,
 			gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE,
 		},
 		&ssl_renegotiation_limit,
@@ -3378,6 +3601,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This controls the number of consecutive keepalive retransmits that can be "
 						 "lost before a connection is considered dead. A value of 0 uses the "
 						 "system default."),
+			GUC_INTERNAL_SETTINGS,
 		},
 		&tcp_keepalives_count,
 		0, 0, INT_MAX,
@@ -3388,6 +3612,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
 			gettext_noop("Sets the maximum allowed result for exact search by GIN."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			0
 		},
 		&GinFuzzySearchLimit,
@@ -3400,6 +3625,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the planner's assumption about the total size of the data caches."),
 			gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
 						 "This is measured in disk pages, which are normally 8 kB each."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&effective_cache_size,
@@ -3411,6 +3637,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of table data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_table_scan_size,
@@ -3422,6 +3649,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of index data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_index_scan_size,
@@ -3434,6 +3662,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version as an integer."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_num,
@@ -3445,6 +3674,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_temp_files", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
 			gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
+			GUC_LOGGING_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&log_temp_files,
@@ -3456,6 +3686,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"track_activity_query_size", PGC_POSTMASTER, STATS_COLLECTOR,
 			gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_BYTE
 		},
 		&pgstat_track_activity_query_size,
@@ -3467,6 +3698,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum size of the pending list for GIN index."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&gin_pending_list_limit,
@@ -3478,6 +3710,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_user_timeout", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("TCP user timeout."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&tcp_user_timeout,
@@ -3489,6 +3722,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("The size of huge page that should be requested."),
 			NULL,
+			GUC_RESOURCE_USAGE,
 			GUC_UNIT_KB
 		},
 		&huge_page_size,
@@ -3500,6 +3734,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"debug_invalidate_system_caches_always", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Aggressively invalidate system caches for debugging purposes."),
 			NULL,
+			/* Treat this option as a ready-made denial of service attack */
+			GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&debug_invalidate_system_caches_always,
@@ -3523,6 +3759,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"client_connection_check_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the time interval between checks for disconnection while running queries."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&client_connection_check_interval,
@@ -3544,6 +3781,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "sequentially fetched disk page."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&seq_page_cost,
@@ -3555,6 +3793,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "nonsequentially fetched disk page."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&random_page_cost,
@@ -3566,6 +3805,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each tuple (row)."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cpu_tuple_cost,
@@ -3577,6 +3817,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each index entry during an index scan."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cpu_index_tuple_cost,
@@ -3588,6 +3829,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each operator or function call."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cpu_operator_cost,
@@ -3599,6 +3841,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "passing each tuple (row) from worker to leader backend."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&parallel_tuple_cost,
@@ -3610,6 +3853,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "starting up worker processes for parallel query."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&parallel_setup_cost,
@@ -3621,6 +3865,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT compilation if query is more expensive."),
 			gettext_noop("-1 disables JIT compilation."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_above_cost,
@@ -3632,6 +3877,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
 			gettext_noop("-1 disables optimization."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_optimize_above_cost,
@@ -3643,6 +3889,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT inlining if query is more expensive."),
 			gettext_noop("-1 disables inlining."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_inline_above_cost,
@@ -3655,6 +3902,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the fraction of "
 						 "a cursor's rows that will be retrieved."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cursor_tuple_fraction,
@@ -3666,6 +3914,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: selective pressure within the population."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_selection_bias,
@@ -3677,6 +3926,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: seed for random path selection."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_seed,
@@ -3688,6 +3938,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Multiple of work_mem to use for hash tables."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&hash_mem_multiplier,
@@ -3698,7 +3949,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Multiple of the average buffer usage to free per round."),
-			NULL
+			NULL,
+			GUC_RESOURCE_USAGE
 		},
 		&bgwriter_lru_multiplier,
 		2.0, 0.0, 10.0,
@@ -3709,6 +3961,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"seed", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the seed for random-number generation."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&phony_random_seed,
@@ -3720,6 +3973,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost delay in milliseconds."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&VacuumCostDelay,
@@ -3731,6 +3985,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
 			NULL,
+			GUC_MAINTENANCE_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&autovacuum_vac_cost_delay,
@@ -3741,7 +3996,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_vac_scale,
 		0.2, 0.0, 100.0,
@@ -3751,7 +4007,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_vac_ins_scale,
 		0.2, 0.0, 100.0,
@@ -3761,7 +4018,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_MAINTENANCE_SETTINGS
 		},
 		&autovacuum_anl_scale,
 		0.1, 0.0, 100.0,
@@ -3771,7 +4029,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&CheckPointCompletionTarget,
 		0.9, 0.0, 1.0,
@@ -3781,7 +4040,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
-			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
+			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log)."),
+			GUC_LOGGING_SETTINGS
 		},
 		&log_statement_sample_rate,
 		1.0, 0.0, 1.0,
@@ -3792,7 +4052,8 @@ static struct config_real ConfigureNamesReal[] =
 		{"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the fraction of transactions from which to log all statements."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
-						 "statements for all transactions).")
+						 "statements for all transactions)."),
+			GUC_LOGGING_SETTINGS
 		},
 		&log_xact_sample_rate,
 		0.0, 0.0, 1.0,
@@ -3811,7 +4072,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
 			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
-			NULL
+			NULL,
+			GUC_EXEC_COMMAND
 		},
 		&XLogArchiveCommand,
 		"",
@@ -3821,7 +4083,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
-			NULL
+			NULL,
+			GUC_EXEC_COMMAND
 		},
 		&recoveryRestoreCommand,
 		"",
@@ -3831,7 +4094,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed at every restart point."),
-			NULL
+			NULL,
+			GUC_EXEC_COMMAND
 		},
 		&archiveCleanupCommand,
 		"",
@@ -3841,7 +4105,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
-			NULL
+			NULL,
+			GUC_EXEC_COMMAND
 		},
 		&recoveryEndCommand,
 		"",
@@ -3851,7 +4116,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Specifies the timeline to recover into."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recovery_target_timeline_string,
 		"latest",
@@ -3861,7 +4127,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recovery_target_string,
 		"",
@@ -3870,7 +4137,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the transaction ID up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recovery_target_xid_string,
 		"",
@@ -3879,7 +4147,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the time stamp up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recovery_target_time_string,
 		"",
@@ -3888,7 +4157,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the named restore point up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recovery_target_name_string,
 		"",
@@ -3897,7 +4167,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recovery_target_lsn_string,
 		"",
@@ -3907,7 +4178,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"promote_trigger_file", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Specifies a file name whose presence ends recovery in the standby."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&PromoteTriggerFile,
 		"",
@@ -3918,6 +4190,7 @@ static struct config_string ConfigureNamesString[] =
 		{"primary_conninfo", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the connection string to be used to connect to the sending server."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&PrimaryConnInfo,
@@ -3928,7 +4201,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the name of the replication slot to use on the sending server."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&PrimarySlotName,
 		"",
@@ -3939,6 +4213,7 @@ static struct config_string ConfigureNamesString[] =
 		{"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the client's character set encoding."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME | GUC_REPORT
 		},
 		&client_encoding_string,
@@ -3949,7 +4224,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Controls information prefixed to each log line."),
-			gettext_noop("If blank, no prefix is used.")
+			gettext_noop("If blank, no prefix is used."),
+			GUC_LOGGING_SETTINGS
 		},
 		&Log_line_prefix,
 		"%m [%p] ",
@@ -3959,7 +4235,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Sets the time zone to use in log messages."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_timezone_string,
 		"GMT",
@@ -3971,6 +4248,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the display format for date and time values."),
 			gettext_noop("Also controls interpretation of ambiguous "
 						 "date inputs."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_LIST_INPUT | GUC_REPORT
 		},
 		&datestyle_string,
@@ -3982,6 +4260,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default table access method for new tables."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME
 		},
 		&default_table_access_method,
@@ -3993,6 +4272,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default tablespace to create tables and indexes in."),
 			gettext_noop("An empty string selects the database's default tablespace."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME
 		},
 		&default_tablespace,
@@ -4004,6 +4284,7 @@ static struct config_string ConfigureNamesString[] =
 		{"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&temp_tablespaces,
@@ -4018,6 +4299,7 @@ static struct config_string ConfigureNamesString[] =
 						 "the specified name does not have a directory component (i.e., the "
 						 "name does not contain a slash), the system will search this path for "
 						 "the specified file."),
+			GUC_FILESYSTEM_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Dynamic_library_path,
@@ -4029,6 +4311,7 @@ static struct config_string ConfigureNamesString[] =
 		{"krb_server_keyfile", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the location of the Kerberos server key file."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&pg_krb_server_keyfile,
@@ -4039,7 +4322,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the Bonjour service name."),
-			NULL
+			NULL,
+			GUC_INTERFACE_SETTINGS
 		},
 		&bonjour_name,
 		"",
@@ -4052,6 +4336,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_collate", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the collation order locale."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_collate,
@@ -4063,6 +4348,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_ctype", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the character classification and case conversion locale."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_ctype,
@@ -4073,7 +4359,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the language in which messages are displayed."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&locale_messages,
 		"",
@@ -4083,7 +4370,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting monetary amounts."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&locale_monetary,
 		"C",
@@ -4093,7 +4381,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting numbers."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&locale_numeric,
 		"C",
@@ -4103,7 +4392,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting date and time values."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&locale_time,
 		"C",
@@ -4114,6 +4404,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into each backend."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&session_preload_libraries_string,
@@ -4125,6 +4416,7 @@ static struct config_string ConfigureNamesString[] =
 		{"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into server."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&shared_preload_libraries_string,
@@ -4136,6 +4428,7 @@ static struct config_string ConfigureNamesString[] =
 		{"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&local_preload_libraries_string,
@@ -4147,6 +4440,7 @@ static struct config_string ConfigureNamesString[] =
 		{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the schema search order for names that are not schema-qualified."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_EXPLAIN
 		},
 		&namespace_search_path,
@@ -4159,6 +4453,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server (database) character set encoding."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_encoding_string,
@@ -4171,6 +4466,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_version", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_string,
@@ -4183,6 +4479,7 @@ static struct config_string ConfigureNamesString[] =
 		{"role", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the current role."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&role_string,
@@ -4195,6 +4492,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_authorization", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the session user name."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME | GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&session_authorization_string,
@@ -4208,6 +4506,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Valid values are combinations of \"stderr\", "
 						 "\"syslog\", \"csvlog\", and \"eventlog\", "
 						 "depending on the platform."),
+			GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS,
 			GUC_LIST_INPUT
 		},
 		&Log_destination_string,
@@ -4219,6 +4518,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the destination directory for log files."),
 			gettext_noop("Can be specified as relative to the data directory "
 						 "or as absolute path."),
+			GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_directory,
@@ -4229,6 +4529,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_filename", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the file name pattern for log files."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_filename,
@@ -4240,7 +4541,8 @@ static struct config_string ConfigureNamesString[] =
 		{"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the program name used to identify PostgreSQL "
 						 "messages in syslog."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS
 		},
 		&syslog_ident_str,
 		"postgres",
@@ -4251,7 +4553,8 @@ static struct config_string ConfigureNamesString[] =
 		{"event_source", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Sets the application name used to identify "
 						 "PostgreSQL messages in the event log."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS
 		},
 		&event_source,
 		DEFAULT_EVENT_SOURCE,
@@ -4262,6 +4565,7 @@ static struct config_string ConfigureNamesString[] =
 		{"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT
 		},
 		&timezone_string,
@@ -4271,7 +4575,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Selects a file of time zone abbreviations."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&timezone_abbreviations_string,
 		NULL,
@@ -4282,7 +4587,8 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the owning group of the Unix-domain socket."),
 			gettext_noop("The owning user of the socket is always the user "
-						 "that starts the server.")
+						 "that starts the server."),
+			GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS
 		},
 		&Unix_socket_group,
 		"",
@@ -4293,6 +4599,7 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the directories where Unix-domain sockets will be created."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_directories,
@@ -4308,6 +4615,7 @@ static struct config_string ConfigureNamesString[] =
 		{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the host name or IP address(es) to listen to."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_LIST_INPUT
 		},
 		&ListenAddresses,
@@ -4323,6 +4631,7 @@ static struct config_string ConfigureNamesString[] =
 		{"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's data directory."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_SUPERUSER_ONLY | GUC_DISALLOW_IN_AUTO_FILE
 		},
 		&data_directory,
@@ -4334,6 +4643,7 @@ static struct config_string ConfigureNamesString[] =
 		{"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's main configuration file."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_DISALLOW_IN_FILE | GUC_SUPERUSER_ONLY
 		},
 		&ConfigFileName,
@@ -4345,6 +4655,7 @@ static struct config_string ConfigureNamesString[] =
 		{"hba_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's \"hba\" configuration file."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&HbaFileName,
@@ -4356,6 +4667,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ident_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's \"ident\" configuration file."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&IdentFileName,
@@ -4367,6 +4679,7 @@ static struct config_string ConfigureNamesString[] =
 		{"external_pid_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Writes the postmaster PID to the specified file."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&external_pid_file,
@@ -4378,6 +4691,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the name of the SSL library."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&ssl_library,
@@ -4392,7 +4706,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server certificate file."),
-			NULL
+			NULL,
+			GUC_FILESYSTEM_SECURITY
 		},
 		&ssl_cert_file,
 		"server.crt",
@@ -4402,7 +4717,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server private key file."),
-			NULL
+			NULL,
+			GUC_FILESYSTEM_SECURITY
 		},
 		&ssl_key_file,
 		"server.key",
@@ -4412,7 +4728,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate authority file."),
-			NULL
+			NULL,
+			GUC_FILESYSTEM_SECURITY
 		},
 		&ssl_ca_file,
 		"",
@@ -4422,7 +4739,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list file."),
-			NULL
+			NULL,
+			GUC_FILESYSTEM_SECURITY
 		},
 		&ssl_crl_file,
 		"",
@@ -4432,7 +4750,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list directory."),
-			NULL
+			NULL,
+			GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS
 		},
 		&ssl_crl_dir,
 		"",
@@ -4443,6 +4762,7 @@ static struct config_string ConfigureNamesString[] =
 		{"stats_temp_directory", PGC_SIGHUP, STATS_COLLECTOR,
 			gettext_noop("Writes temporary statistics files to the specified directory."),
 			NULL,
+			GUC_FILESYSTEM_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&pgstat_temp_directory,
@@ -4454,6 +4774,7 @@ static struct config_string ConfigureNamesString[] =
 		{"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
 			NULL,
+			GUC_WAL_SETTINGS,
 			GUC_LIST_INPUT
 		},
 		&SyncRepStandbyNames,
@@ -4464,7 +4785,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets default text search configuration."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&TSCurrentConfig,
 		"pg_catalog.simple",
@@ -4475,6 +4797,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the list of allowed SSL ciphers."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&SSLCipherSuites,
@@ -4490,6 +4813,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ecdh_curve", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the curve to use for ECDH."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&SSLECDHCurve,
@@ -4505,6 +4829,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_dh_params_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL DH parameters file."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&ssl_dh_params_file,
@@ -4516,6 +4841,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_passphrase_command", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Command to obtain passphrases for SSL."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&ssl_passphrase_command,
@@ -4527,6 +4853,7 @@ static struct config_string ConfigureNamesString[] =
 		{"application_name", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Sets the application name to be reported in statistics and logs."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
 		},
 		&application_name,
@@ -4538,6 +4865,7 @@ static struct config_string ConfigureNamesString[] =
 		{"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
 			gettext_noop("Sets the name of the cluster, which is included in the process title."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_IS_NAME
 		},
 		&cluster_name,
@@ -4549,6 +4877,7 @@ static struct config_string ConfigureNamesString[] =
 		{"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
 			gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
+			GUC_WAL_SETTINGS,
 			GUC_LIST_INPUT | GUC_NOT_IN_SAMPLE
 		},
 		&wal_consistency_checking_string,
@@ -4560,6 +4889,7 @@ static struct config_string ConfigureNamesString[] =
 		{"jit_provider", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("JIT provider to use."),
 			NULL,
+			GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&jit_provider,
@@ -4571,6 +4901,7 @@ static struct config_string ConfigureNamesString[] =
 		{"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Log backtrace for errors in these functions."),
 			NULL,
+			GUC_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&backtrace_functions,
@@ -4590,7 +4921,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&backslash_quote,
 		BACKSLASH_QUOTE_SAFE_ENCODING, backslash_quote_options,
@@ -4600,7 +4932,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the output format for bytea."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&bytea_output,
 		BYTEA_OUTPUT_HEX, bytea_output_options,
@@ -4611,7 +4944,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the message levels that are sent to the client."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_INTERNAL_SETTINGS
 		},
 		&client_min_messages,
 		NOTICE, client_message_level_options,
@@ -4623,6 +4957,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Enables the planner to use constraints to optimize queries."),
 			gettext_noop("Table scans will be skipped if their constraints"
 						 " guarantee that no rows match the query."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&constraint_exclusion,
@@ -4634,6 +4969,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default compression for new columns."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_IS_NAME
 		},
 		&default_toast_compression,
@@ -4644,7 +4980,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the transaction isolation level of each new transaction."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&DefaultXactIsoLevel,
 		XACT_READ_COMMITTED, isolation_level_options,
@@ -4655,6 +4992,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's isolation level."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactIsoLevel,
@@ -4666,6 +5004,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the display format for interval values."),
 			NULL,
+			GUC_INTERNAL_SETTINGS,
 			GUC_REPORT
 		},
 		&IntervalStyle,
@@ -4676,7 +5015,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the verbosity of logged messages."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&Log_error_verbosity,
 		PGERROR_DEFAULT, log_error_verbosity_options,
@@ -4687,7 +5027,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_messages", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the message levels that are logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_LOGGING_SETTINGS
 		},
 		&log_min_messages,
 		WARNING, server_message_level_options,
@@ -4698,7 +5039,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Causes all statements generating error at or above this level to be logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_LOGGING_SETTINGS
 		},
 		&log_min_error_statement,
 		ERROR, server_message_level_options,
@@ -4708,7 +5050,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_statement", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the type of statements logged."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS
 		},
 		&log_statement,
 		LOGSTMT_NONE, log_statement_options,
@@ -4718,7 +5061,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
-			NULL
+			NULL,
+			GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS
 		},
 		&syslog_facility,
 #ifdef HAVE_SYSLOG
@@ -4733,7 +5077,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&SessionReplicationRole,
 		SESSION_REPLICATION_ROLE_ORIGIN, session_replication_role_options,
@@ -4743,7 +5088,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the current transaction's synchronization level."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&synchronous_commit,
 		SYNCHRONOUS_COMMIT_ON, synchronous_commit_options,
@@ -4753,7 +5099,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
 			gettext_noop("Allows archiving of WAL files using archive_command."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&XLogArchiveMode,
 		ARCHIVE_MODE_OFF, archive_mode_options,
@@ -4763,7 +5110,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the action to perform upon reaching the recovery target."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&recoveryTargetAction,
 		RECOVERY_TARGET_ACTION_PAUSE, recovery_target_action_options,
@@ -4774,7 +5122,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"trace_recovery_messages", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Enables logging of recovery-related debugging information."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS
 		},
 		&trace_recovery_messages,
 
@@ -4789,7 +5138,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"track_functions", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects function-level statistics on database activity."),
-			NULL
+			NULL,
+			GUC_STATS_SETTINGS
 		},
 		&pgstat_track_functions,
 		TRACK_FUNC_OFF, track_function_options,
@@ -4799,7 +5149,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the level of information written to the WAL."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&wal_level,
 		WAL_LEVEL_REPLICA, wal_level_options,
@@ -4809,7 +5160,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the dynamic shared memory implementation used."),
-			NULL
+			NULL,
+			GUC_SERVER_CONFIGURATION
 		},
 		&dynamic_shared_memory_type,
 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
@@ -4819,7 +5171,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
-			NULL
+			NULL,
+			GUC_SERVER_CONFIGURATION
 		},
 		&shared_memory_type,
 		DEFAULT_SHARED_MEMORY_TYPE, shared_memory_options,
@@ -4829,7 +5182,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Selects the method used for forcing WAL updates to disk."),
-			NULL
+			NULL,
+			GUC_WAL_SETTINGS
 		},
 		&sync_method,
 		DEFAULT_SYNC_METHOD, sync_method_options,
@@ -4839,7 +5193,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets how binary values are to be encoded in XML."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&xmlbinary,
 		XMLBINARY_BASE64, xmlbinary_options,
@@ -4850,7 +5205,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets whether XML data in implicit parsing and serialization "
 						 "operations is to be considered as documents or content fragments."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&xmloption,
 		XMLOPTION_CONTENT, xmloption_options,
@@ -4860,7 +5216,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Use of huge pages on Linux or Windows."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE
 		},
 		&huge_pages,
 		HUGE_PAGES_TRY, huge_pages_options,
@@ -4871,6 +5228,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"force_parallel_mode", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Forces use of parallel query facilities."),
 			gettext_noop("If possible, run query using a parallel worker and with parallel restrictions."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&force_parallel_mode,
@@ -4881,7 +5239,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
 			gettext_noop("Chooses the algorithm for encrypting passwords."),
-			NULL
+			NULL,
+			GUC_INTERNAL_SETTINGS
 		},
 		&Password_encryption,
 		PASSWORD_TYPE_SCRAM_SHA_256, password_encryption_options,
@@ -4894,6 +5253,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Prepared statements can have custom and generic plans, and the planner "
 						 "will attempt to choose which is better.  This can be set to override "
 						 "the default behavior."),
+			GUC_INTERNAL_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&plan_cache_mode,
@@ -4905,6 +5265,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_min_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the minimum SSL/TLS protocol version to use."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&ssl_min_protocol_version,
@@ -4917,6 +5278,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_max_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the maximum SSL/TLS protocol version to use."),
 			NULL,
+			GUC_INTERFACE_SETTINGS,
 			GUC_SUPERUSER_ONLY
 		},
 		&ssl_max_protocol_version,
@@ -4928,6 +5290,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_init_sync_method", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
+			NULL,
+			GUC_WAL_SETTINGS,
 		},
 		&recovery_init_sync_method,
 		RECOVERY_INIT_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
@@ -7214,6 +7578,60 @@ parse_and_validate_value(struct config_generic *record,
 	return true;
 }
 
+static bool
+role_has_privileges(Oid roleid, int privileges)
+{
+	if ((privileges & GUC_INTERNAL_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_INTERNAL_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_STORAGE_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_STORAGE_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_WAL_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_WAL_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_STATS_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_STATS_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_MAINTENANCE_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MAINTENANCE_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_LOGGING_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_LOGGING_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_INTERFACE_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_INTERFACE_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_RESOURCE_USAGE) &&
+		! has_privs_of_role(roleid, ROLE_PG_RESOURCE_USAGE))
+		return false;
+
+	if ((privileges & GUC_FILESYSTEM_SECURITY) &&
+		! has_privs_of_role(roleid, ROLE_PG_FILESYSTEM_SECURITY))
+		return false;
+
+	if ((privileges & GUC_EXEC_COMMAND) &&
+		! has_privs_of_role(roleid, ROLE_PG_EXEC_COMMAND))
+		return false;
+
+	if ((privileges & GUC_SERVER_CONFIGURATION) &&
+		! has_privs_of_role(roleid, ROLE_PG_SERVER_CONFIGURATION))
+		return false;
+
+	if ((privileges & GUC_SECURITY_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_SECURITY_SETTINGS))
+		return false;
+
+	return true;
+}
+
 
 /*
  * Sets option `name' to given value.
@@ -7361,7 +7779,8 @@ set_config_option(const char *name, const char *value,
 			break;
 		case PGC_SU_BACKEND:
 			/* Reject if we're connecting but user is not superuser */
-			if (context == PGC_BACKEND)
+			if (context == PGC_BACKEND &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -7408,7 +7827,8 @@ set_config_option(const char *name, const char *value,
 			}
 			break;
 		case PGC_SUSET:
-			if (context == PGC_USERSET || context == PGC_BACKEND)
+			if ((context == PGC_USERSET || context == PGC_BACKEND) &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -8450,26 +8870,30 @@ replace_auto_config_value(ConfigVariable **head_p, ConfigVariable **tail_p,
 void
 AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 {
+	VariableSetKind kind;
 	char	   *name;
 	char	   *value;
 	bool		resetall = false;
+	bool		is_super = false;
 	ConfigVariable *head = NULL;
 	ConfigVariable *tail = NULL;
 	volatile int Tmpfd;
 	char		AutoConfFileName[MAXPGPATH];
 	char		AutoConfTmpFileName[MAXPGPATH];
 
-	if (!superuser())
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to execute ALTER SYSTEM command")));
-
 	/*
 	 * Extract statement arguments
 	 */
 	name = altersysstmt->setstmt->name;
+	kind = altersysstmt->setstmt->kind;
+	is_super = superuser();
+
+	if (!is_super && kind == VAR_RESET_ALL)
+		ereport(ERROR,
+				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+				 errmsg("must be superuser to execute ALTER SYSTEM RESET ALL command")));
 
-	switch (altersysstmt->setstmt->kind)
+	switch (kind)
 	{
 		case VAR_SET_VALUE:
 			value = ExtractSetVariableArgs(altersysstmt->setstmt);
@@ -8513,6 +8937,15 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 					 errmsg("parameter \"%s\" cannot be changed",
 							name)));
 
+		/*
+		 * Deny non-superusers trying to run ALTER SYSTEM SET on variables
+		 * unless they belong to a role intended for the purpose.
+		 */
+		if (!is_super && !role_has_privileges(GetUserId(), record->privileges))
+			ereport(ERROR,
+					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+					 errmsg("permission denied to set parameter \"%s\"", name)));
+
 		/*
 		 * If a value is specified, verify that it's sane.
 		 */
@@ -8874,6 +9307,7 @@ init_custom_variable(const char *name,
 					 const char *short_desc,
 					 const char *long_desc,
 					 GucContext context,
+					 int privileges,
 					 int flags,
 					 enum config_type type,
 					 size_t sz)
@@ -8919,6 +9353,7 @@ init_custom_variable(const char *name,
 	gen->group = CUSTOM_OPTIONS;
 	gen->short_desc = short_desc;
 	gen->long_desc = long_desc;
+	gen->privileges = privileges;
 	gen->flags = flags;
 	gen->vartype = type;
 
@@ -9117,6 +9552,7 @@ DefineCustomBoolVariable(const char *name,
 						 bool *valueAddr,
 						 bool bootValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucBoolCheckHook check_hook,
 						 GucBoolAssignHook assign_hook,
@@ -9125,8 +9561,8 @@ DefineCustomBoolVariable(const char *name,
 	struct config_bool *var;
 
 	var = (struct config_bool *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_BOOL, sizeof(struct config_bool));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_BOOL, sizeof(struct config_bool));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9145,6 +9581,7 @@ DefineCustomIntVariable(const char *name,
 						int minValue,
 						int maxValue,
 						GucContext context,
+						int privileges,
 						int flags,
 						GucIntCheckHook check_hook,
 						GucIntAssignHook assign_hook,
@@ -9153,8 +9590,8 @@ DefineCustomIntVariable(const char *name,
 	struct config_int *var;
 
 	var = (struct config_int *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_INT, sizeof(struct config_int));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_INT, sizeof(struct config_int));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9175,6 +9612,7 @@ DefineCustomRealVariable(const char *name,
 						 double minValue,
 						 double maxValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucRealCheckHook check_hook,
 						 GucRealAssignHook assign_hook,
@@ -9183,8 +9621,8 @@ DefineCustomRealVariable(const char *name,
 	struct config_real *var;
 
 	var = (struct config_real *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_REAL, sizeof(struct config_real));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_REAL, sizeof(struct config_real));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9203,6 +9641,7 @@ DefineCustomStringVariable(const char *name,
 						   char **valueAddr,
 						   const char *bootValue,
 						   GucContext context,
+						   int privileges,
 						   int flags,
 						   GucStringCheckHook check_hook,
 						   GucStringAssignHook assign_hook,
@@ -9211,8 +9650,8 @@ DefineCustomStringVariable(const char *name,
 	struct config_string *var;
 
 	var = (struct config_string *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_STRING, sizeof(struct config_string));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_STRING, sizeof(struct config_string));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->check_hook = check_hook;
@@ -9229,6 +9668,7 @@ DefineCustomEnumVariable(const char *name,
 						 int bootValue,
 						 const struct config_enum_entry *options,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucEnumCheckHook check_hook,
 						 GucEnumAssignHook assign_hook,
@@ -9237,8 +9677,8 @@ DefineCustomEnumVariable(const char *name,
 	struct config_enum *var;
 
 	var = (struct config_enum *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_ENUM, sizeof(struct config_enum));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_ENUM, sizeof(struct config_enum));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index ed5916330c..e409de053b 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -39,6 +39,66 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9276', oid_symbol => 'ROLE_PG_INTERNAL_SETTINGS',
+  rolname => 'pg_internal_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9277', oid_symbol => 'ROLE_PG_STORAGE_SETTINGS',
+  rolname => 'pg_storage_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9278', oid_symbol => 'ROLE_PG_WAL_SETTINGS',
+  rolname => 'pg_wal_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9279', oid_symbol => 'ROLE_PG_STATS_SETTINGS',
+  rolname => 'pg_stats_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9280', oid_symbol => 'ROLE_PG_MAINTENANCE_SETTINGS',
+  rolname => 'pg_maintenance_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9281', oid_symbol => 'ROLE_PG_LOGGING_SETTINGS',
+  rolname => 'pg_logging_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9282', oid_symbol => 'ROLE_PG_INTERFACE_SETTINGS',
+  rolname => 'pg_interface_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9283', oid_symbol => 'ROLE_PG_RESOURCE_USAGE',
+  rolname => 'pg_resource_usage', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9284', oid_symbol => 'ROLE_PG_FILESYSTEM_SECURITY',
+  rolname => 'pg_filesystem_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9285', oid_symbol => 'ROLE_PG_EXEC_COMMAND',
+  rolname => 'pg_exec_command', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9286', oid_symbol => 'ROLE_PG_SERVER_CONFIGURATION',
+  rolname => 'pg_server_configuration', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9287', oid_symbol => 'ROLE_PG_SECURITY_SETTINGS',
+  rolname => 'pg_security_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 { oid => '3373', oid_symbol => 'ROLE_PG_MONITOR',
   rolname => 'pg_monitor', rolsuper => 'f', rolinherit => 't',
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 24a5d9d3fb..35f42d5908 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -198,6 +198,23 @@ typedef enum
 
 #define GUC_QUALIFIER_SEPARATOR '.'
 
+/*
+ * privilege bits required to modify a GUC variable
+ */
+#define GUC_INTERNAL_SETTINGS		0x0001	/* internal behavior */
+#define GUC_STORAGE_SETTINGS		0x0002	/* storage error behavior */
+#define GUC_WAL_SETTINGS			0x0004	/* wal, replication and recovery */
+#define GUC_STATS_SETTINGS			0x0008	/* stats collection */
+#define GUC_MAINTENANCE_SETTINGS	0x0010	/* autovacuum */
+#define GUC_LOGGING_SETTINGS		0x0020	/* system log */
+#define GUC_INTERFACE_SETTINGS		0x0040	/* connection and authentication */
+#define GUC_RESOURCE_USAGE			0x0080	/* disk, memory, cpu */
+#define GUC_FILESYSTEM_SECURITY		0x0100	/* filesystem paths and perms */
+#define GUC_EXEC_COMMAND			0x0200	/* exec external programs */
+#define GUC_SERVER_CONFIGURATION	0x0400	/* server OS features usage */
+#define GUC_SECURITY_SETTINGS		0x0800	/* security sensitive settings */
+#define GUC_ALL_PRIVILEGES			0x0FFF	/* all of the above */
+
 /*
  * bit values in "flags" of a GUC variable
  */
@@ -295,6 +312,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 bool *valueAddr,
 									 bool bootValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
@@ -308,6 +326,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int minValue,
 									int maxValue,
 									GucContext context,
+									int privileges,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
@@ -321,6 +340,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 double minValue,
 									 double maxValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
@@ -332,6 +352,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   char **valueAddr,
 									   const char *bootValue,
 									   GucContext context,
+									   int privileges,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
@@ -344,6 +365,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int bootValue,
 									 const struct config_enum_entry *options,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h
index 6b40f1eeb8..27288236ae 100644
--- a/src/include/utils/guc_tables.h
+++ b/src/include/utils/guc_tables.h
@@ -143,6 +143,7 @@ struct config_generic
 	enum config_group group;	/* to help organize variables by function */
 	const char *short_desc;		/* short desc. of this variable's purpose */
 	const char *long_desc;		/* long desc. of this variable's purpose */
+	int			privileges;		/* privileges bits, see guc.h */
 	int			flags;			/* flag bits, see guc.h */
 	/* variable fields, initialized at runtime: */
 	enum config_type vartype;	/* type of variable (set only at startup) */
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 6299adf71a..d24989b9bd 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -406,7 +406,7 @@ _PG_init(void)
 							 NULL,
 							 &plperl_use_strict,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	/*
@@ -420,7 +420,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_init,
 							   NULL,
-							   PGC_SIGHUP, 0,
+							   PGC_SIGHUP, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	/*
@@ -442,7 +442,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperl_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plperl.on_plperlu_init",
@@ -450,7 +450,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperlu_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	EmitWarningsOnPlaceholders("plperl");
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c
index 00aace2f39..737eb80eb0 100644
--- a/src/pl/plpgsql/src/pl_handler.c
+++ b/src/pl/plpgsql/src/pl_handler.c
@@ -158,7 +158,7 @@ _PG_init(void)
 							 &plpgsql_variable_conflict,
 							 PLPGSQL_RESOLVE_ERROR,
 							 variable_conflict_options,
-							 PGC_SUSET, 0,
+							 PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.print_strict_params",
@@ -166,7 +166,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_print_strict_params,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.check_asserts",
@@ -174,7 +174,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_check_asserts,
 							 true,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plpgsql.extra_warnings",
@@ -182,7 +182,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_warnings_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_ALL_PRIVILEGES, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_warnings_assign_hook,
 							   NULL);
@@ -192,7 +192,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_errors_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_ALL_PRIVILEGES, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_errors_assign_hook,
 							   NULL);
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index e11837559d..a52c101b0a 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -464,14 +464,14 @@ _PG_init(void)
 							   NULL,
 							   &pltcl_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 	DefineCustomStringVariable("pltclu.start_proc",
 							   gettext_noop("PL/TclU function to call once when pltclu is first used."),
 							   NULL,
 							   &pltclu_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	pltcl_pm_init_done = true;
diff --git a/src/test/modules/delay_execution/delay_execution.c b/src/test/modules/delay_execution/delay_execution.c
index b3d0841ba8..6e99f612fa 100644
--- a/src/test/modules/delay_execution/delay_execution.c
+++ b/src/test/modules/delay_execution/delay_execution.c
@@ -86,6 +86,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX,
 							PGC_USERSET,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
diff --git a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
index 6b0a3db104..b947247bf3 100644
--- a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
+++ b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
@@ -44,6 +44,7 @@ _PG_init(void)
 							   &ssl_passphrase,
 							   NULL,
 							   PGC_SIGHUP,
+							   GUC_ALL_PRIVILEGES,
 							   0,	/* no flags required */
 							   NULL,
 							   NULL,
diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c
index d0acef2652..0ef493ebfe 100644
--- a/src/test/modules/worker_spi/worker_spi.c
+++ b/src/test/modules/worker_spi/worker_spi.c
@@ -293,6 +293,7 @@ _PG_init(void)
 							1,
 							INT_MAX,
 							PGC_SIGHUP,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
@@ -309,6 +310,7 @@ _PG_init(void)
 							1,
 							100,
 							PGC_POSTMASTER,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
@@ -320,6 +322,7 @@ _PG_init(void)
 							   &worker_spi_database,
 							   "postgres",
 							   PGC_POSTMASTER,
+							   GUC_ALL_PRIVILEGES,
 							   0,
 							   NULL, NULL, NULL);
 
diff --git a/src/test/regress/expected/guc_priv_admin.out b/src/test/regress/expected/guc_priv_admin.out
new file mode 100644
index 0000000000..544dd5a426
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_admin.out
@@ -0,0 +1,1844 @@
+-- Role with all GUC permissions
+CREATE ROLE admin;
+GRANT pg_internal_settings TO admin;
+GRANT pg_stats_settings TO admin;
+GRANT pg_maintenance_settings TO admin;
+GRANT pg_storage_settings TO admin;
+GRANT pg_wal_settings TO admin;
+GRANT pg_logging_settings TO admin;
+GRANT pg_interface_settings TO admin;
+GRANT pg_resource_usage TO admin;
+GRANT pg_filesystem_security TO admin;
+GRANT pg_exec_command TO admin;
+GRANT pg_server_configuration TO admin;
+GRANT pg_security_settings TO admin;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_BACKEND / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_system_indexes = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = ON;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = ON;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = ON;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = ON;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = ON;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = ON;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = ON;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = ON;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = ON;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET is_superuser = ON;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = ON;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET logging_collector = ON;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = ON;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET bonjour = ON;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = ON;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+-- PGC_POSTMASTER / GUC_SERVER_CONFIGURATION / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = ON;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = ON;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = ON;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = ON;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+RESET recovery_init_sync_method;  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET track_commit_timestamp = ON;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = ON;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby = ON;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = ON;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = ON;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = ON;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = ON;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = ON;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS / LOGGING_WHERE
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = ON;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = ON;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / CONN_AUTH_SSL
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET db_user_namespace = ON;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = ON;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_caseins_users = ON;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = ON;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+SET ssl_passphrase_command_supports_reload = ON;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = ON;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = ON;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = ON;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS | GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_hostname = ON;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = ON;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = ON;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = ON;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = ON;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = ON;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = ON;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = ON;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = ON;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = ON;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum = ON;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = ON;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = ON;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = ON;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET restart_after_crash = ON;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = ON;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby_feedback = ON;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = ON;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = ON;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = ON;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET fsync = ON;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = ON;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = ON;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = ON;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / GUC_ALL_PRIVILEGES / DEVELOPER_OPTIONS
+SET allow_system_table_mods = ON;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = ON;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_dump_bitcode = ON;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = ON;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_duration = ON;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = ON;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = ON;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = ON;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = ON;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = ON;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / STATS_MONITORING
+SET log_executor_stats = ON;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = ON;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = ON;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = ON;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = ON;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = ON;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = ON;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = ON;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / PROCESS_TITLE
+SET update_process_title = ON;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = ON;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_SECURITY_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = ON;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = ON;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_COLLECTOR
+SET track_activities = ON;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = ON;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = ON;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = ON;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = ON;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = ON;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_MONITORING
+SET compute_query_id = ON;  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = ON;  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_checksum_failure = ON;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = ON;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET zero_damaged_pages = ON;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = ON;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_WAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SUSET / GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+-- PGC_SUSET / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = ON;  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = ON;  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = ON;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = ON;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = ON;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = ON;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_profiling_support = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = ON;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_debugging_support = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = ON;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+-- PGC_SU_BACKEND / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_connections = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = ON;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = ON;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = ON;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = ON;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = ON;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = ON;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = ON;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = ON;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = ON;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = ON;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+WARNING:  RESET TRANSACTION can only be used in transaction blocks
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+SET transaction_read_only = ON;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = ON;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = ON;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = ON;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = ON;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = ON;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = ON;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = ON;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = ON;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = ON;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = ON;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = ON;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = ON;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = ON;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = ON;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = ON;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = ON;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = ON;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = ON;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = ON;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET exit_on_error = ON;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = ON;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = ON;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = ON;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = ON;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = ON;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = ON;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = ON;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = ON;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = ON;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_GEQO
+SET geqo = ON;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = ON;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_METHOD
+SET enable_async_append = ON;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = ON;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = ON;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = ON;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = ON;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = ON;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = ON;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = ON;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = ON;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = ON;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = ON;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = ON;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = ON;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = ON;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = ON;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = ON;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = ON;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = ON;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = ON;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = ON;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = ON;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = ON;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = ON;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = ON;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = ON;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = ON;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = ON;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = ON;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = ON;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = ON;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = ON;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = ON;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = ON;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = ON;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = ON;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = ON;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/expected/guc_priv_tenant.out b/src/test/regress/expected/guc_priv_tenant.out
new file mode 100644
index 0000000000..757cc3aa03
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_tenant.out
@@ -0,0 +1,2237 @@
+-- Role operating exclusively within the sandbox
+CREATE ROLE tenant;
+GRANT pg_internal_settings TO tenant;
+GRANT pg_stats_settings TO tenant;
+GRANT pg_maintenance_settings TO tenant;
+-- Perform all operations as user 'tenant' --
+SET SESSION AUTHORIZATION tenant;
+-- PGC_BACKEND / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_BACKEND / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_system_indexes = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = ON;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = ON;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = ON;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = ON;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = ON;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = ON;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = ON;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = ON;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = ON;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET is_superuser = ON;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = ON;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET logging_collector = ON;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET bonjour = ON;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+-- PGC_POSTMASTER / GUC_SERVER_CONFIGURATION / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = ON;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = ON;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+RESET recovery_init_sync_method;  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET track_commit_timestamp = ON;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby = ON;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = ON;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = ON;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS / LOGGING_WHERE
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = ON;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / CONN_AUTH_SSL
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET db_user_namespace = ON;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_caseins_users = ON;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+SET ssl_passphrase_command_supports_reload = ON;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = ON;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS | GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_hostname = ON;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = ON;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = ON;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = ON;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = ON;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum = ON;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = ON;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET restart_after_crash = ON;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby_feedback = ON;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = ON;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET fsync = ON;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = ON;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / GUC_ALL_PRIVILEGES / DEVELOPER_OPTIONS
+SET allow_system_table_mods = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_dump_bitcode = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_duration = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / STATS_MONITORING
+SET log_executor_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / PROCESS_TITLE
+SET update_process_title = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / GUC_SECURITY_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_COLLECTOR
+SET track_activities = ON;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = ON;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = ON;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = ON;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = ON;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = ON;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_MONITORING
+SET compute_query_id = ON;  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = ON;  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_checksum_failure = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET zero_damaged_pages = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / GUC_WAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+-- PGC_SUSET / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_profiling_support = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_debugging_support = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+-- PGC_SU_BACKEND / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_connections = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = ON;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = ON;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = ON;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = ON;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = ON;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = ON;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = ON;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = ON;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = ON;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = ON;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+WARNING:  RESET TRANSACTION can only be used in transaction blocks
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+SET transaction_read_only = ON;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = ON;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = ON;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = ON;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = ON;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = ON;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = ON;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = ON;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = ON;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = ON;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = ON;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = ON;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = ON;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = ON;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = ON;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = ON;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = ON;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = ON;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = ON;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = ON;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET exit_on_error = ON;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = ON;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = ON;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = ON;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = ON;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = ON;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = ON;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = ON;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = ON;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = ON;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_GEQO
+SET geqo = ON;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = ON;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_METHOD
+SET enable_async_append = ON;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = ON;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = ON;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = ON;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = ON;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = ON;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = ON;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = ON;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = ON;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = ON;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = ON;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = ON;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = ON;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = ON;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = ON;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = ON;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = ON;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = ON;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = ON;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = ON;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = ON;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = ON;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = ON;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = ON;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = ON;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = ON;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = ON;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = ON;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = ON;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = ON;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = ON;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = ON;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = ON;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = ON;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = ON;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = ON;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE tenant;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 22b0d3584d..be21d96ff6 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_tenant guc_priv_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_admin.sql b/src/test/regress/sql/guc_priv_admin.sql
new file mode 100644
index 0000000000..078adadffb
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_admin.sql
@@ -0,0 +1,1470 @@
+
+-- Role with all GUC permissions
+CREATE ROLE admin;
+GRANT pg_internal_settings TO admin;
+GRANT pg_stats_settings TO admin;
+GRANT pg_maintenance_settings TO admin;
+GRANT pg_storage_settings TO admin;
+GRANT pg_wal_settings TO admin;
+GRANT pg_logging_settings TO admin;
+GRANT pg_interface_settings TO admin;
+GRANT pg_resource_usage TO admin;
+GRANT pg_filesystem_security TO admin;
+GRANT pg_exec_command TO admin;
+GRANT pg_server_configuration TO admin;
+GRANT pg_security_settings TO admin;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_BACKEND / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_system_indexes = ON;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = ON;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = ON;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = ON;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = ON;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = ON;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET is_superuser = ON;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET logging_collector = ON;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = ON;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET bonjour = ON;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = ON;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+-- PGC_POSTMASTER / GUC_SERVER_CONFIGURATION / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = ON;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = ON;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = ON;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = ON;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+RESET recovery_init_sync_method;  -- fail, requires restart
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET track_commit_timestamp = ON;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = ON;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby = ON;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = ON;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = ON;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = ON;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = ON;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = ON;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS / LOGGING_WHERE
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = ON;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = ON;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / CONN_AUTH_SSL
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET db_user_namespace = ON;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = ON;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_caseins_users = ON;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = ON;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+SET ssl_passphrase_command_supports_reload = ON;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = ON;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = ON;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = ON;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS | GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_hostname = ON;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = ON;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = ON;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = ON;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = ON;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = ON;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = ON;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = ON;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = ON;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = ON;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum = ON;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = ON;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = ON;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = ON;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET restart_after_crash = ON;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = ON;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby_feedback = ON;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = ON;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = ON;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = ON;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET fsync = ON;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = ON;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = ON;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = ON;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / GUC_ALL_PRIVILEGES / DEVELOPER_OPTIONS
+SET allow_system_table_mods = ON;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = ON;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_dump_bitcode = ON;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = ON;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_duration = ON;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = ON;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = ON;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = ON;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = ON;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = ON;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / STATS_MONITORING
+SET log_executor_stats = ON;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = ON;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = ON;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = ON;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = ON;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = ON;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = ON;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = ON;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / PROCESS_TITLE
+SET update_process_title = ON;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = ON;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_SECURITY_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = ON;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = ON;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_COLLECTOR
+SET track_activities = ON;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = ON;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = ON;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = ON;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = ON;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = ON;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_MONITORING
+SET compute_query_id = ON;  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = ON;  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_checksum_failure = ON;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = ON;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET zero_damaged_pages = ON;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = ON;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_WAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SUSET / GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+-- PGC_SUSET / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = ON;  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = ON;  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = ON;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = ON;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = ON;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = ON;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_profiling_support = ON;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = ON;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_debugging_support = ON;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = ON;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+-- PGC_SU_BACKEND / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_connections = ON;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = ON;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = ON;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = ON;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = ON;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = ON;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = ON;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = ON;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = ON;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = ON;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = ON;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+SET transaction_read_only = ON;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = ON;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = ON;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = ON;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = ON;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = ON;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = ON;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = ON;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = ON;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = ON;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = ON;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = ON;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = ON;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = ON;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = ON;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = ON;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = ON;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = ON;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = ON;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET exit_on_error = ON;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = ON;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = ON;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = ON;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = ON;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = ON;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = ON;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = ON;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = ON;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = ON;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_GEQO
+SET geqo = ON;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = ON;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_METHOD
+SET enable_async_append = ON;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = ON;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = ON;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = ON;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = ON;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = ON;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = ON;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = ON;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = ON;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = ON;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = ON;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = ON;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = ON;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = ON;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = ON;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = ON;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = ON;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = ON;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = ON;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = ON;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = ON;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = ON;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = ON;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = ON;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = ON;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = ON;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = ON;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = ON;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = ON;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = ON;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = ON;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = ON;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = ON;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = ON;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = ON;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = ON;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/sql/guc_priv_tenant.sql b/src/test/regress/sql/guc_priv_tenant.sql
new file mode 100644
index 0000000000..b4d2c23a2f
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_tenant.sql
@@ -0,0 +1,1461 @@
+
+-- Role operating exclusively within the sandbox
+CREATE ROLE tenant;
+GRANT pg_internal_settings TO tenant;
+GRANT pg_stats_settings TO tenant;
+GRANT pg_maintenance_settings TO tenant;
+-- Perform all operations as user 'tenant' --
+SET SESSION AUTHORIZATION tenant;
+-- PGC_BACKEND / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, tenant has insufficient privileges
+-- PGC_BACKEND / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_system_indexes = ON;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = ON;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = ON;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = ON;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = ON;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = ON;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET is_superuser = ON;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, tenant has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET logging_collector = ON;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_INTERFACE_SETTINGS / CONN_AUTH_SETTINGS
+SET bonjour = ON;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, tenant has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, tenant has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, tenant has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, tenant has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, tenant has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, tenant has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, tenant has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, tenant has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, tenant has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, tenant has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, tenant has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_SERVER_CONFIGURATION / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, tenant has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = ON;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_STORAGE_SETTINGS / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = ON;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+RESET recovery_init_sync_method;  -- fail, requires restart
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET track_commit_timestamp = ON;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby = ON;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, tenant has insufficient privileges
+SET recovery_target_inclusive = ON;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, tenant has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, tenant has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, tenant has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, tenant has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, tenant has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, tenant has insufficient privileges
+SET wal_log_hints = ON;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, tenant has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, tenant has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_EXEC_COMMAND / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, tenant has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, tenant has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, tenant has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS / LOGGING_WHERE
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_LOGGING_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, tenant has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, tenant has insufficient privileges
+SET log_truncate_on_rotation = ON;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / CONN_AUTH_SSL
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, tenant has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, tenant has insufficient privileges
+SET db_user_namespace = ON;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, tenant has insufficient privileges
+SET krb_caseins_users = ON;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, tenant has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, tenant has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, tenant has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, tenant has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, tenant has insufficient privileges
+SET ssl_passphrase_command_supports_reload = ON;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, tenant has insufficient privileges
+SET ssl_prefer_server_ciphers = ON;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_INTERFACE_SETTINGS | GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_hostname = ON;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, tenant has insufficient privileges
+SET log_checkpoints = ON;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, tenant has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, tenant has insufficient privileges
+SET log_recovery_conflict_waits = ON;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, tenant has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / LOGGING_WHERE
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, tenant has insufficient privileges
+SET syslog_sequence_numbers = ON;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, tenant has insufficient privileges
+SET syslog_split_messages = ON;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_LOGGING_SETTINGS | GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / AUTOVACUUM
+SET autovacuum = ON;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_MAINTENANCE_SETTINGS | GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, tenant has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, tenant has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, tenant has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, tenant has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_RESOURCE_USAGE | GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = ON;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, tenant has insufficient privileges
+SET restart_after_crash = ON;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_SENDING
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / REPLICATION_STANDBY
+SET hot_standby_feedback = ON;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, tenant has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, tenant has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, tenant has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, tenant has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, tenant has insufficient privileges
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, tenant has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, tenant has insufficient privileges
+SET wal_receiver_create_temp_slot = ON;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, tenant has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, tenant has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, tenant has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_ARCHIVING
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, tenant has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, tenant has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, tenant has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, tenant has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET fsync = ON;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, tenant has insufficient privileges
+SET full_page_writes = ON;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, tenant has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, tenant has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, tenant has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_ALL_PRIVILEGES / DEVELOPER_OPTIONS
+SET allow_system_table_mods = ON;  -- fail, tenant has insufficient privileges
+RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_dump_bitcode = ON;  -- fail, tenant has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_RESOURCE_USAGE | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_duration = ON;  -- fail, tenant has insufficient privileges
+RESET log_duration;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_duration = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, tenant has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+SET log_lock_waits = ON;  -- fail, tenant has insufficient privileges
+RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+SET log_replication_commands = ON;  -- fail, tenant has insufficient privileges
+RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+RESET log_statement;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, tenant has insufficient privileges
+SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+RESET log_temp_files;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+RESET log_min_messages;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, tenant has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_LOGGING_SETTINGS / STATS_MONITORING
+SET log_executor_stats = ON;  -- fail, tenant has insufficient privileges
+RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+SET log_parser_stats = ON;  -- fail, tenant has insufficient privileges
+RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+SET log_planner_stats = ON;  -- fail, tenant has insufficient privileges
+RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+SET log_statement_stats = ON;  -- fail, tenant has insufficient privileges
+RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_LOGGING_SETTINGS | GUC_SECURITY_SETTINGS / PROCESS_TITLE
+SET update_process_title = ON;  -- fail, tenant has insufficient privileges
+RESET update_process_title;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET update_process_title = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_RESOURCE_USAGE / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_SECURITY_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = ON;  -- fail, tenant has insufficient privileges
+RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_COLLECTOR
+SET track_activities = ON;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = ON;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = ON;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = ON;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = ON;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = ON;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = ON;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_STATS_SETTINGS / STATS_MONITORING
+SET compute_query_id = ON;  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = ON;  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_STORAGE_SETTINGS / DEVELOPER_OPTIONS
+SET ignore_checksum_failure = ON;  -- fail, tenant has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+SET zero_damaged_pages = ON;  -- fail, tenant has insufficient privileges
+RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_WAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+RESET session_replication_role;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_WAL_SETTINGS / DEVELOPER_OPTIONS
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_WAL_SETTINGS / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+RESET commit_delay;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, tenant has insufficient privileges
+SET wal_compression = ON;  -- fail, tenant has insufficient privileges
+RESET wal_compression;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_compression = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, tenant has insufficient privileges
+SET wal_init_zero = ON;  -- fail, tenant has insufficient privileges
+RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+SET wal_recycle = ON;  -- fail, tenant has insufficient privileges
+RESET wal_recycle;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_recycle = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, tenant has insufficient privileges
+-- PGC_SU_BACKEND / GUC_FILESYSTEM_SECURITY | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_profiling_support = ON;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, tenant has insufficient privileges
+-- PGC_SU_BACKEND / GUC_INTERNAL_SETTINGS | GUC_SECURITY_SETTINGS / DEVELOPER_OPTIONS
+SET jit_debugging_support = ON;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, tenant has insufficient privileges
+-- PGC_SU_BACKEND / GUC_LOGGING_SETTINGS / LOGGING_WHAT
+SET log_connections = ON;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, tenant has insufficient privileges
+SET log_disconnections = ON;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = ON;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = ON;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = ON;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = ON;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = ON;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = ON;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = ON;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = ON;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = ON;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+SET transaction_read_only = ON;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = ON;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = ON;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = ON;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = ON;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = ON;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = ON;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = ON;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = ON;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = ON;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = ON;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = ON;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = ON;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = ON;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = ON;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = ON;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = ON;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = ON;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = ON;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = ON;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / ERROR_HANDLING_OPTIONS
+SET exit_on_error = ON;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = ON;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = ON;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = ON;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = ON;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = ON;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = ON;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = ON;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = ON;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = ON;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_GEQO
+SET geqo = ON;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = ON;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_METHOD
+SET enable_async_append = ON;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = ON;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = ON;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = ON;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = ON;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = ON;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = ON;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = ON;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = ON;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = ON;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = ON;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = ON;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = ON;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = ON;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = ON;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = ON;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = ON;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = ON;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = ON;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = ON;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = ON;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = ON;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = ON;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = ON;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = ON;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = ON;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = ON;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = ON;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = ON;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = ON;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = ON;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = ON;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = ON;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = ON;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = ON;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = ON;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = ON;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = ON;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = ON;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = ON;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_INTERNAL_SETTINGS / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_RESOURCE_USAGE / RESOURCES_ASYNCHRONOUS
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, tenant has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, tenant has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE tenant;
-- 
2.21.1 (Apple Git-122.3)

#23Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#22)
Re: Granting control of SUSET gucs to non-superusers

On Wed, May 12, 2021 at 11:59 AM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

I didn't bother updating the docs yet, as I doubt the set of privileges/roles in this patch will survive contact with this list. They are:

[ various things ]

Interesting classification. I think the trick here is going to be to
figure out how we should divide things up in a way that makes sense.
There are a couple of possible approaches that suggest themselves:

- One role for all settings, as suggested by Tom. Seems too
coarse-grained to be of any use.

- A separate grantable privilege for each setting. Very flexible, but unwieldy.

- Group things by which section of postgresql.conf they're in, and
then further restrict some of them as security-sensitive. This is
reasonably close to what you've got, but not exactly what you've got.
One issue is that it risks separating things that are in practice not
useful to separate, creating more predefined roles to manage than we
really need. With your division, what are the chances that someone
wants to grant pg_stats_settings but not pg_maintenance_settings or
the other way around?

- Group things by the security exposure that they present, along the
lines of what I proposed previously. This could be possibly combined
with some other categorization, e.g. section of postgresql.conf. But
if you don't do that, an idea like this in its pure form would say,
ok, well we have a role like pg_administrator which is entitled to
change all GUCs that we think aren't security-sensitive, and then
roles like pg_server_file_acccess, pg_execute_server_programs, etc.
that further restrict some GUCs. The risk here is that mashing too
many things together reduces the chances that somebody's going to be
able to get exactly what they want out of the system.

- Something else.

--
Robert Haas
EDB: http://www.enterprisedb.com

#24Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#23)
Re: Granting control of SUSET gucs to non-superusers

On May 12, 2021, at 12:58 PM, Robert Haas <robertmhaas@gmail.com> wrote:

- Group things by which section of postgresql.conf they're in, and
then further restrict some of them as security-sensitive. This is
reasonably close to what you've got, but not exactly what you've got.
One issue is that it risks separating things that are in practice not
useful to separate, creating more predefined roles to manage than we
really need. With your division, what are the chances that someone
wants to grant pg_stats_settings but not pg_maintenance_settings or
the other way around?

I think our conversation off-list was worth enough to reiterate here....

When classifying GUC variables, the philosophy of classification needs to be consistent and easily understandable so that, among other considerations, all future GUC variables have a reasonable chance of be classified correctly by their patch authors and committers. The patch I posted falls short in this regard. You and I discussed two organizational options:

Theme+Security:
- security is considered as falling into three groupings: (a) host security, which includes files and permissions, running external commands, etc., (b) network security, which includes all connection options and authentications, and (c) schema security, which includes database internal object security like rls, object ownership, etc.
- theme is based on the GUC config_group, either having one theme per config_group, or basing the theme on the prefix of the config_group such that, for example, QUERY_TUNING_METHOD, QUERY_TUNING_COST, QUERY_TUNING_GEQO, and QUERY_TUNING_OTHER could all be in one theme named "pg_query_tuning".

Admin+Security
- security works the same as Theme+Security
- a pg_admin role is required to set all non PGC_USERSET gucs, but some of those gucs *also* require one or more of the security roles

The Theme+Security approach might be insufficient for extensibility, given that 3rd-party custom GUCs might not have a corresponding theme. The Admin+Security approach appears better in this regard.

Admin+Security seems sufficient, in conjunction with Chapman's idea of extensible check_hooks.

Thoughts?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#25Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#24)
Re: Granting control of SUSET gucs to non-superusers

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On May 12, 2021, at 12:58 PM, Robert Haas <robertmhaas@gmail.com> wrote:
- Group things by which section of postgresql.conf they're in, and
then further restrict some of them as security-sensitive. This is
reasonably close to what you've got, but not exactly what you've got.
One issue is that it risks separating things that are in practice not
useful to separate, creating more predefined roles to manage than we
really need. With your division, what are the chances that someone
wants to grant pg_stats_settings but not pg_maintenance_settings or
the other way around?

I think our conversation off-list was worth enough to reiterate here....

When classifying GUC variables, the philosophy of classification needs to be consistent and easily understandable so that, among other considerations, all future GUC variables have a reasonable chance of be classified correctly by their patch authors and committers. The patch I posted falls short in this regard. You and I discussed two organizational options:

Theme+Security:
- security is considered as falling into three groupings: (a) host security, which includes files and permissions, running external commands, etc., (b) network security, which includes all connection options and authentications, and (c) schema security, which includes database internal object security like rls, object ownership, etc.
- theme is based on the GUC config_group, either having one theme per config_group, or basing the theme on the prefix of the config_group such that, for example, QUERY_TUNING_METHOD, QUERY_TUNING_COST, QUERY_TUNING_GEQO, and QUERY_TUNING_OTHER could all be in one theme named "pg_query_tuning".

Admin+Security
- security works the same as Theme+Security
- a pg_admin role is required to set all non PGC_USERSET gucs, but some of those gucs *also* require one or more of the security roles

The Theme+Security approach might be insufficient for extensibility, given that 3rd-party custom GUCs might not have a corresponding theme. The Admin+Security approach appears better in this regard.

Admin+Security seems sufficient, in conjunction with Chapman's idea of extensible check_hooks.

I'm not entirely following what the difference here is that's being
suggested. At a high level, I like the idea of defining capabilities
along the lines of "host security", "network security", "schema
security". I do think we should consider maybe breaking those down a
bit more but I don't know that we'd really need to have much more.

In general, I'm not really keen on such a generic role as 'pg_admin'. I
would have thought we'd have a matrix where we have categories for GUCs
and roles which are allowed to modify those categories, with the
additional requirement of having host/network/schema capability for
those GUCs which imply that level of access. Having the low-level
capabilities plus the GUC groups would seem likely to cover most cases
that 3rd party extensions might wish for, in a pretty granular way,
though we could always consider adding more in the future.

Thanks,

Stephen

#26Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#25)
Re: Granting control of SUSET gucs to non-superusers

On May 13, 2021, at 10:41 AM, Stephen Frost <sfrost@snowman.net> wrote:

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On May 12, 2021, at 12:58 PM, Robert Haas <robertmhaas@gmail.com> wrote:
- Group things by which section of postgresql.conf they're in, and
then further restrict some of them as security-sensitive. This is
reasonably close to what you've got, but not exactly what you've got.
One issue is that it risks separating things that are in practice not
useful to separate, creating more predefined roles to manage than we
really need. With your division, what are the chances that someone
wants to grant pg_stats_settings but not pg_maintenance_settings or
the other way around?

I think our conversation off-list was worth enough to reiterate here....

When classifying GUC variables, the philosophy of classification needs to be consistent and easily understandable so that, among other considerations, all future GUC variables have a reasonable chance of be classified correctly by their patch authors and committers. The patch I posted falls short in this regard. You and I discussed two organizational options:

Theme+Security:
- security is considered as falling into three groupings: (a) host security, which includes files and permissions, running external commands, etc., (b) network security, which includes all connection options and authentications, and (c) schema security, which includes database internal object security like rls, object ownership, etc.
- theme is based on the GUC config_group, either having one theme per config_group, or basing the theme on the prefix of the config_group such that, for example, QUERY_TUNING_METHOD, QUERY_TUNING_COST, QUERY_TUNING_GEQO, and QUERY_TUNING_OTHER could all be in one theme named "pg_query_tuning".

Admin+Security
- security works the same as Theme+Security
- a pg_admin role is required to set all non PGC_USERSET gucs, but some of those gucs *also* require one or more of the security roles

The Theme+Security approach might be insufficient for extensibility, given that 3rd-party custom GUCs might not have a corresponding theme. The Admin+Security approach appears better in this regard.

Admin+Security seems sufficient, in conjunction with Chapman's idea of extensible check_hooks.

I'm not entirely following what the difference here is that's being
suggested. At a high level, I like the idea of defining capabilities
along the lines of "host security", "network security", "schema
security". I do think we should consider maybe breaking those down a
bit more but I don't know that we'd really need to have much more.

The distinction that Theme+Security would make is that capabilities can be categorized by the area of the system:
-- planner
-- replication
-- logging
...
but also by the security implications of what is being done:
-- host
-- schema
-- network

So if a GUC variable is related to replication, but also impacts the security of libpq connections to the server, then you'd need to be a member of both pg_replication_role and pg_network_admin. If another GUC variable is related to logging, but also impacts the file permissions or ownership of the log file, you'd need to be a member of both pg_logging_role and pg_host_admin.

The Admin+Security idea would instead say that to SET any GUC variable other than PGC_USERSET gucs, or to ALTER SYSTEM SET on any GUC variable, you'd need to be a member of pg_admin_role. If the GUC variable also impacts host security (file permissions, etc.) you'd have to also be a member of pg_host_admin, or if it impacts security of connections to the server, you'd have to also be a member of pg_network_admin.

I'm just making up names like "pg_replication_role" and such for illustration.

In general, I'm not really keen on such a generic role as 'pg_admin'. I
would have thought we'd have a matrix where we have categories for GUCs
and roles which are allowed to modify those categories, with the
additional requirement of having host/network/schema capability for
those GUCs which imply that level of access.

Yeah, that's the Theme+Security idea, or at least it seems so to me.

Having the low-level
capabilities plus the GUC groups would seem likely to cover most cases
that 3rd party extensions might wish for, in a pretty granular way,
though we could always consider adding more in the future.

I'm imagining the security concerns splitting three ways, and the themes splitting on the order of ten different ways. We can quibble over how fine grained the themes should be. There is a simplicity argument to having them be one-to-one with the config_group.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#27Jacob Champion
pchampion@vmware.com
In reply to: Mark Dilger (#26)
Re: Granting control of SUSET gucs to non-superusers

On Thu, 2021-05-13 at 11:42 -0700, Mark Dilger wrote:

The distinction that Theme+Security would make is that capabilities
can be categorized by the area of the system:
-- planner
-- replication
-- logging
...
but also by the security implications of what is being done:
-- host
-- schema
-- network

Since the "security" buckets are being used for both proposals -- how
you would deal with overlap between them? When a GUC gives you enough
host access to bleed into the schema and network domains, does it get
all three attributes assigned to it, and thus require membership in all
three roles?

(Thanks, by the way, for this thread -- I think a "capability system"
for superuser access is a great idea.)

--Jacob

#28Stephen Frost
sfrost@snowman.net
In reply to: Jacob Champion (#27)
Re: Granting control of SUSET gucs to non-superusers

Greetings,

* Jacob Champion (pchampion@vmware.com) wrote:

On Thu, 2021-05-13 at 11:42 -0700, Mark Dilger wrote:

The distinction that Theme+Security would make is that capabilities
can be categorized by the area of the system:
-- planner
-- replication
-- logging
...
but also by the security implications of what is being done:
-- host
-- schema
-- network

Since the "security" buckets are being used for both proposals -- how
you would deal with overlap between them? When a GUC gives you enough
host access to bleed into the schema and network domains, does it get
all three attributes assigned to it, and thus require membership in all
three roles?

The question is about exactly what the operation is, not about what that
operation might allow someone to be able to do by using that access.

'network' might, in theory, allow someone to connect out on a port that
happens to have a bash shell that's running as root on the local box too
which means that it "could" be used to gain 'host' access but that's not
really our concern.

To that point, if it's allowing access to run programs on the host then
'host' is required, but I don't think we should also require 'network'
for 'run programs on the host' because someone might run 'curl' with
that access- that's an issue for the admin and the curl utility to
figure out.

(Thanks, by the way, for this thread -- I think a "capability system"
for superuser access is a great idea.)

We've been working in that direction for a long time. :)

Thanks,

Stephen

#29Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Jacob Champion (#27)
Re: Granting control of SUSET gucs to non-superusers

On May 13, 2021, at 12:18 PM, Jacob Champion <pchampion@vmware.com> wrote:

On Thu, 2021-05-13 at 11:42 -0700, Mark Dilger wrote:

The distinction that Theme+Security would make is that capabilities
can be categorized by the area of the system:
-- planner
-- replication
-- logging
...
but also by the security implications of what is being done:
-- host
-- schema
-- network

Since the "security" buckets are being used for both proposals -- how
you would deal with overlap between them? When a GUC gives you enough
host access to bleed into the schema and network domains, does it get
all three attributes assigned to it, and thus require membership in all
three roles?

Yeah, from a security standpoint, pg_host_admin basically gives everything away. I doubt service providers would give the "host" or "network" security to their tenants, but they would probably consider giving "schema" security to the tenants.

(Thanks, by the way, for this thread -- I think a "capability system"
for superuser access is a great idea.)

I am happy to work on this, and appreciate feedback....


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#30Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Mark Dilger (#29)
5 attachment(s)
Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On May 13, 2021, at 12:30 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

On May 13, 2021, at 12:18 PM, Jacob Champion <pchampion@vmware.com> wrote:

On Thu, 2021-05-13 at 11:42 -0700, Mark Dilger wrote:

The distinction that Theme+Security would make is that capabilities
can be categorized by the area of the system:
-- planner
-- replication
-- logging
...
but also by the security implications of what is being done:
-- host
-- schema
-- network

Since the "security" buckets are being used for both proposals -- how
you would deal with overlap between them? When a GUC gives you enough
host access to bleed into the schema and network domains, does it get
all three attributes assigned to it, and thus require membership in all
three roles?

Yeah, from a security standpoint, pg_host_admin basically gives everything away. I doubt service providers would give the "host" or "network" security to their tenants, but they would probably consider giving "schema" security to the tenants.

(Thanks, by the way, for this thread -- I think a "capability system"
for superuser access is a great idea.)

I am happy to work on this, and appreciate feedback....

Please find attached five new patches each intended to reduce the number of administrative tasks that require superuser privileges.

v3-0001 adds a new pg_logical_replication role with permission to manage publications and subscriptions.

v3-0002 adds a new pg_host_security role with permission to manage extensions, event triggers and tablespaces.

v3-0003 adds a new pg_network_security role with pemission to manage foreign servers and data wrappers.

v3-0004 adds a new pg_database_security role with permission to perform many actions that would otherwise require superuser, so long as those actions do not compromise the security of the host or network. This role, along with pg_logical_replication, is intended to be safe to delegate to the tenant of a database provided as a service.

v3-0005 associates all GUC variables with security roles and allows both SET and ALTER SYSTEM SET on those variables by users belonging to the necessary security role(s). This patch extends the significance of the pg_host_security, pg_network_security, and pg_database_security roles added in the previous patches, as those roles are associated with GUC variables that implicate the same security concerns.

These patches likely still need some adjustment, as there are a large number of security relevant permission decisions in here which some hackers may debate, but I think these are mature enough to solicit feedback.

I admit right upfront that the regression tests guc_priv_admin and guc_priv_tenant in v3-0005 could be made to cover a subset of GUC variables rather than the full set of them, but I'm delaying pruning them down until I know if the rest of the patches are basically acceptable.

Attachments:

v3-0005-Allow-SET-and-ALTER-SYSTEM-SET-by-non-superusers.patchapplication/octet-stream; name=v3-0005-Allow-SET-and-ALTER-SYSTEM-SET-by-non-superusers.patch; x-unix-mode=0644Download
From 8eda6d2b60fe996152e7d97a3df990e91f6ce443 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 25 May 2021 11:14:17 -0700
Subject: [PATCH v3 5/5] Allow SET and ALTER SYSTEM SET by non-superusers

Reducing the number of administrative tasks that require superuser
privileges by allowing non-superusers to execute SET and ALTER
SYSTEM SET on most GUC variables, provided the user is a member of
the appropriate security role.

Each GUC variables, even USERSET ones, are associated with one or
more of pg_database_security, pg_host_security, and
pg_network_security.  Users must be a member of the associated
role(s) to perform ALTER SYSTEM SET on the variable.  For non-USERSET
variables, the same requirement is enforced to SET the variable.  In
no case does this prevent a user who previously could perform a SET
or ALTER SYSTEM SET operation from doing so now.
---
 contrib/auth_delay/auth_delay.c               |    1 +
 contrib/auto_explain/auto_explain.c           |   12 +
 contrib/dblink/expected/dblink.out            |    2 +-
 contrib/pg_prewarm/autoprewarm.c              |    2 +
 .../pg_stat_statements/pg_stat_statements.c   |    5 +
 contrib/pg_trgm/trgm_op.c                     |    3 +
 contrib/sepgsql/hooks.c                       |    2 +
 src/backend/utils/misc/guc.c                  |  756 ++++--
 src/include/utils/guc.h                       |   13 +
 src/include/utils/guc_tables.h                |    1 +
 src/pl/plperl/expected/plperl_setup.out       |    4 +-
 src/pl/plperl/plperl.c                        |    8 +-
 src/pl/plpgsql/src/pl_handler.c               |   10 +-
 src/pl/tcl/pltcl.c                            |    4 +-
 .../modules/delay_execution/delay_execution.c |    1 +
 .../ssl_passphrase_func.c                     |    1 +
 src/test/modules/worker_spi/worker_spi.c      |    3 +
 src/test/regress/expected/guc_priv_admin.out  | 1823 +++++++++++++
 src/test/regress/expected/guc_priv_tenant.out | 2275 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/guc_priv_admin.sql       | 1449 +++++++++++
 src/test/regress/sql/guc_priv_tenant.sql      | 1447 +++++++++++
 22 files changed, 7625 insertions(+), 199 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_admin.out
 create mode 100644 src/test/regress/expected/guc_priv_tenant.out
 create mode 100644 src/test/regress/sql/guc_priv_admin.sql
 create mode 100644 src/test/regress/sql/guc_priv_tenant.sql

diff --git a/contrib/auth_delay/auth_delay.c b/contrib/auth_delay/auth_delay.c
index 5820ac328d..56a32ff2c3 100644
--- a/contrib/auth_delay/auth_delay.c
+++ b/contrib/auth_delay/auth_delay.c
@@ -63,6 +63,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_NETWORK_SECURITY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index e9092ba359..1c9b77a91a 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -100,6 +100,7 @@ _PG_init(void)
 							-1,
 							-1, INT_MAX,
 							PGC_SUSET,
+							GUC_HOST_SECURITY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
@@ -111,6 +112,7 @@ _PG_init(void)
 							 &auto_explain_log_analyze,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -122,6 +124,7 @@ _PG_init(void)
 							 &auto_explain_log_settings,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -133,6 +136,7 @@ _PG_init(void)
 							 &auto_explain_log_verbose,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -144,6 +148,7 @@ _PG_init(void)
 							 &auto_explain_log_buffers,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -155,6 +160,7 @@ _PG_init(void)
 							 &auto_explain_log_wal,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -166,6 +172,7 @@ _PG_init(void)
 							 &auto_explain_log_triggers,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -178,6 +185,7 @@ _PG_init(void)
 							 EXPLAIN_FORMAT_TEXT,
 							 format_options,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -190,6 +198,7 @@ _PG_init(void)
 							 LOG,
 							 loglevel_options,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -201,6 +210,7 @@ _PG_init(void)
 							 &auto_explain_log_nested_statements,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -212,6 +222,7 @@ _PG_init(void)
 							 &auto_explain_log_timing,
 							 true,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -225,6 +236,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out
index 6516d4f131..d575891ad1 100644
--- a/contrib/dblink/expected/dblink.out
+++ b/contrib/dblink/expected/dblink.out
@@ -887,7 +887,7 @@ SET SESSION AUTHORIZATION regress_dblink_user;
 -- should fail
 SELECT dblink_connect('myconn', 'fdtest');
 ERROR:  password is required
-DETAIL:  Non-superusers must provide a password in the connection string.
+DETAIL:  Non-superusers other than pg_network_security must provide a password in the connection string.
 -- should succeed
 SELECT dblink_connect_u('myconn', 'fdtest');
  dblink_connect_u 
diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c
index b3f73ea92d..ec9952c243 100644
--- a/contrib/pg_prewarm/autoprewarm.c
+++ b/contrib/pg_prewarm/autoprewarm.c
@@ -116,6 +116,7 @@ _PG_init(void)
 							300,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_HOST_SECURITY,
 							GUC_UNIT_S,
 							NULL,
 							NULL,
@@ -131,6 +132,7 @@ _PG_init(void)
 							 &autoprewarm,
 							 true,
 							 PGC_POSTMASTER,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c
index 09433c8c96..0a43d7346b 100644
--- a/contrib/pg_stat_statements/pg_stat_statements.c
+++ b/contrib/pg_stat_statements/pg_stat_statements.c
@@ -386,6 +386,7 @@ _PG_init(void)
 							100,
 							INT_MAX,
 							PGC_POSTMASTER,
+							GUC_DATABASE_SECURITY,
 							0,
 							NULL,
 							NULL,
@@ -398,6 +399,7 @@ _PG_init(void)
 							 PGSS_TRACK_TOP,
 							 track_options,
 							 PGC_SUSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -409,6 +411,7 @@ _PG_init(void)
 							 &pgss_track_utility,
 							 true,
 							 PGC_SUSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -420,6 +423,7 @@ _PG_init(void)
 							 &pgss_track_planning,
 							 false,
 							 PGC_SUSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -431,6 +435,7 @@ _PG_init(void)
 							 &pgss_save,
 							 true,
 							 PGC_SIGHUP,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_trgm/trgm_op.c b/contrib/pg_trgm/trgm_op.c
index fb38135f7a..cc06df268b 100644
--- a/contrib/pg_trgm/trgm_op.c
+++ b/contrib/pg_trgm/trgm_op.c
@@ -72,6 +72,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -84,6 +85,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -96,6 +98,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/sepgsql/hooks.c b/contrib/sepgsql/hooks.c
index 34de6158d6..912765e4c3 100644
--- a/contrib/sepgsql/hooks.c
+++ b/contrib/sepgsql/hooks.c
@@ -431,6 +431,7 @@ _PG_init(void)
 							 &sepgsql_permissive,
 							 false,
 							 PGC_SIGHUP,
+							 GUC_HOST_SECURITY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
@@ -449,6 +450,7 @@ _PG_init(void)
 							 &sepgsql_debug_audit,
 							 false,
 							 PGC_USERSET,
+							 GUC_HOST_SECURITY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index ee731044b6..efc1d73540 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -956,6 +956,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of sequential-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_seqscan,
@@ -966,6 +967,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_indexscan,
@@ -976,6 +978,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-only-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_indexonlyscan,
@@ -986,6 +989,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of bitmap-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_bitmapscan,
@@ -996,6 +1000,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of TID scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_tidscan,
@@ -1006,6 +1011,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of explicit sort steps."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_sort,
@@ -1015,7 +1021,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of incremental sort steps."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&enable_incremental_sort,
 		true,
@@ -1025,6 +1032,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hashed aggregation plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_hashagg,
@@ -1035,6 +1043,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of materialization."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_material,
@@ -1045,6 +1054,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_resultcache", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of result caching."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_resultcache,
@@ -1055,6 +1065,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of nested-loop join plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_nestloop,
@@ -1065,6 +1076,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of merge join plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_mergejoin,
@@ -1075,6 +1087,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hash join plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_hashjoin,
@@ -1085,6 +1098,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of gather merge plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_gathermerge,
@@ -1095,6 +1109,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise join."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_join,
@@ -1105,6 +1120,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise aggregation and grouping."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_aggregate,
@@ -1115,6 +1131,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel append plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_append,
@@ -1125,6 +1142,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel hash plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_hash,
@@ -1137,6 +1155,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Allows the query planner and executor to compare partition "
 						 "bounds to conditions in the query to determine which "
 						 "partitions must be scanned."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_partition_pruning,
@@ -1147,6 +1166,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of async append plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_async_append,
@@ -1158,6 +1178,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables genetic query optimization."),
 			gettext_noop("This algorithm attempts to do planning without "
 						 "exhaustive searching."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_geqo,
@@ -1169,6 +1190,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"is_superuser", PGC_INTERNAL, UNGROUPED,
 			gettext_noop("Shows whether the current user is a superuser."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&session_auth_is_superuser,
@@ -1178,7 +1200,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Enables advertising the server via Bonjour."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&enable_bonjour,
 		false,
@@ -1187,7 +1210,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Collects transaction commit time."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&track_commit_timestamp,
 		false,
@@ -1196,7 +1220,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Enables SSL connections."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&EnableSSL,
 		false,
@@ -1205,7 +1230,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Also use ssl_passphrase_command during server reload."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&ssl_passphrase_command_supports_reload,
 		false,
@@ -1214,7 +1240,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Give priority to server ciphersuite order."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&SSLPreferServerCiphers,
 		true,
@@ -1226,7 +1253,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("The server will use the fsync() system call in several places to make "
 						 "sure that updates are physically written to disk. This insures "
 						 "that a database cluster will recover to a consistent state after "
-						 "an operating system or hardware crash.")
+						 "an operating system or hardware crash."),
+			GUC_HOST_SECURITY
 		},
 		&enableFsync,
 		true,
@@ -1241,6 +1269,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(but still report a warning), and continue processing. This "
 						 "behavior could cause crashes or other serious problems. Only "
 						 "has an effect if checksums are enabled."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_checksum_failure,
@@ -1255,6 +1284,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "zero_damaged_pages to true causes the system to instead report a "
 						 "warning, zero out the damaged page, and continue processing. This "
 						 "behavior will destroy data, namely all the rows on the damaged page."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&zero_damaged_pages,
@@ -1274,6 +1304,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "crashes, data loss, propagate or hide corruption, "
 						 "or other serious problems. Only has an effect "
 						 "during recovery or in standby mode."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_invalid_pages,
@@ -1287,7 +1318,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "only partially written to disk.  During recovery, the row changes "
 						 "stored in WAL are not enough to recover.  This option writes "
 						 "pages when first modified after a checkpoint to WAL so full recovery "
-						 "is possible.")
+						 "is possible."),
+			GUC_HOST_SECURITY
 		},
 		&fullPageWrites,
 		true,
@@ -1297,7 +1329,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_log_hints,
 		false,
@@ -1307,7 +1340,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_compression", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Compresses full-page writes written in WAL file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_compression,
 		false,
@@ -1317,7 +1351,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Writes zeroes to new WAL files before first use."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_init_zero,
 		true,
@@ -1327,7 +1362,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_recycle", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Recycles WAL files by renaming them."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_recycle,
 		true,
@@ -1337,7 +1373,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs each checkpoint."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_checkpoints,
 		false,
@@ -1346,7 +1383,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs each successful connection."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&Log_connections,
 		false,
@@ -1355,7 +1393,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs end of a session, including duration."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&Log_disconnections,
 		false,
@@ -1364,7 +1403,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs each replication command."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_replication_commands,
 		false,
@@ -1374,6 +1414,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether the running server has assertion checks enabled."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&assert_enabled,
@@ -1388,7 +1429,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Terminate session on any error."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&ExitOnAnyError,
 		false,
@@ -1397,7 +1439,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Reinitialize server after backend crash."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&restart_after_crash,
 		true,
@@ -1406,7 +1449,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"remove_temp_files_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Remove temporary files after backend crash."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&remove_temp_files_after_crash,
 		true,
@@ -1416,7 +1460,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_duration", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs the duration of each completed SQL statement."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_duration,
 		false,
@@ -1425,7 +1470,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's parse tree."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_print_parse,
 		false,
@@ -1434,7 +1480,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's rewritten parse tree."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_print_rewritten,
 		false,
@@ -1443,7 +1490,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's execution plan."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_print_plan,
 		false,
@@ -1452,7 +1500,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Indents parse and plan tree displays."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_pretty_print,
 		true,
@@ -1461,7 +1510,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_parser_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes parser performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_parser_stats,
 		false,
@@ -1470,7 +1520,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_planner_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes planner performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_planner_stats,
 		false,
@@ -1479,7 +1530,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_executor_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes executor performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_executor_stats,
 		false,
@@ -1488,7 +1540,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_statement_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes cumulative performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_statement_stats,
 		false,
@@ -1499,6 +1552,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&log_btree_build_stats,
@@ -1512,7 +1566,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Collects information about executing commands."),
 			gettext_noop("Enables the collection of information on the currently "
 						 "executing command of each session, along with "
-						 "the time at which that command began execution.")
+						 "the time at which that command began execution."),
+			GUC_DATABASE_SECURITY
 		},
 		&pgstat_track_activities,
 		true,
@@ -1521,7 +1576,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_counts", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects statistics on database activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&pgstat_track_counts,
 		true,
@@ -1530,7 +1586,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for database I/O activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&track_io_timing,
 		false,
@@ -1539,7 +1596,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_wal_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for WAL I/O activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&track_wal_io_timing,
 		false,
@@ -1549,7 +1607,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"update_process_title", PGC_SUSET, PROCESS_TITLE,
 			gettext_noop("Updates the process title to show the active SQL command."),
-			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
+			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server."),
+			GUC_HOST_SECURITY
 		},
 		&update_process_title,
 #ifdef WIN32
@@ -1563,7 +1622,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"autovacuum", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Starts the autovacuum subprocess."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&autovacuum_start_daemon,
 		true,
@@ -1574,6 +1634,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_notify,
@@ -1586,6 +1647,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lock usage."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_locks,
@@ -1596,6 +1658,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about user lock usage."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_userlocks,
@@ -1606,6 +1669,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lightweight lock usage."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lwlocks,
@@ -1616,6 +1680,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Debug_deadlocks,
@@ -1627,7 +1692,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs long lock waits."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_lock_waits,
 		false,
@@ -1636,7 +1702,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs standby recovery conflict waits."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_recovery_conflict_waits,
 		false,
@@ -1648,7 +1715,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("By default, connection logs only show the IP address "
 						 "of the connecting host. If you want them to show the host name you "
 						 "can turn this on, but depending on your host name resolution "
-						 "setup it might impose a non-negligible performance penalty.")
+						 "setup it might impose a non-negligible performance penalty."),
+			GUC_HOST_SECURITY
 		},
 		&log_hostname,
 		false,
@@ -1661,7 +1729,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(or NULL = expr) are treated as expr IS NULL, that is, they "
 						 "return true if expr evaluates to the null value, and false "
 						 "otherwise. The correct behavior of expr = NULL is to always "
-						 "return null (unknown).")
+						 "return null (unknown)."),
+			GUC_DATABASE_SECURITY
 		},
 		&Transform_null_equals,
 		false,
@@ -1670,7 +1739,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"db_user_namespace", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Enables per-database user names."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Db_user_namespace,
 		false,
@@ -1680,6 +1750,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default read-only status of new transactions."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&DefaultXactReadOnly,
@@ -1690,6 +1761,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's read-only status."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactReadOnly,
@@ -1699,7 +1771,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default deferrable status of new transactions."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&DefaultXactDeferrable,
 		false,
@@ -1709,6 +1782,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactDeferrable,
@@ -1718,7 +1792,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Enable row security."),
-			gettext_noop("When enabled, row security will be applied to all users.")
+			gettext_noop("When enabled, row security will be applied to all users."),
+			GUC_DATABASE_SECURITY
 		},
 		&row_security,
 		true,
@@ -1727,7 +1802,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&check_function_bodies,
 		true,
@@ -1738,7 +1814,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enable input of NULL elements in arrays."),
 			gettext_noop("When turned on, unquoted NULL in an array input "
 						 "value means a null value; "
-						 "otherwise it is taken literally.")
+						 "otherwise it is taken literally."),
+			GUC_DATABASE_SECURITY
 		},
 		&Array_nulls,
 		true,
@@ -1754,6 +1831,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("WITH OIDS is no longer supported; this can only be false."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
 		},
 		&default_with_oids,
@@ -1763,7 +1841,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Logging_collector,
 		false,
@@ -1772,7 +1851,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Truncate existing log files of same name during log rotation."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Log_truncate_on_rotation,
 		false,
@@ -1784,6 +1864,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit information about resource usage in sorting."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_sort,
@@ -1798,6 +1879,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generate debugging output for synchronized scanning."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_syncscan,
@@ -1813,6 +1895,7 @@ static struct config_bool ConfigureNamesBool[] =
 			"optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enable bounded sorting using heap sort."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&optimize_bounded_sort,
@@ -1826,6 +1909,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit WAL-related debugging output."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&XLOG_DEBUG,
@@ -1838,6 +1922,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether datetimes are integer based."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&integer_datetimes,
@@ -1848,7 +1933,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&pg_krb_caseins_users,
 		false,
@@ -1858,7 +1944,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Warn about backslash escapes in ordinary string literals."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&escape_string_warning,
 		true,
@@ -1869,6 +1956,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Causes '...' strings to treat backslashes literally."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&standard_conforming_strings,
@@ -1879,7 +1967,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enable synchronized sequential scans."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&synchronize_seqscans,
 		true,
@@ -1889,7 +1978,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets whether to include or exclude transaction with recovery target."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryTargetInclusive,
 		true,
@@ -1899,7 +1989,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
 			gettext_noop("Allows connections and queries during recovery."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&EnableHotStandby,
 		true,
@@ -1909,7 +2000,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&hot_standby_feedback,
 		false,
@@ -1920,6 +2012,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether hot standby is currently active."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&in_hot_standby,
@@ -1931,6 +2024,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allows modifications of the structure of system tables."),
 			NULL,
+			GUC_DATABASE_SECURITY | GUC_HOST_SECURITY | GUC_NETWORK_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&allowSystemTableMods,
@@ -1943,6 +2037,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Disables reading from system indexes."),
 			gettext_noop("It does not prevent updating the indexes, so it is safe "
 						 "to use.  The worst consequence is slowness."),
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&IgnoreSystemIndexes,
@@ -1954,7 +2049,8 @@ static struct config_bool ConfigureNamesBool[] =
 		{"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
 			gettext_noop("Skips privilege checks when reading or modifying large objects, "
-						 "for compatibility with PostgreSQL releases prior to 9.0.")
+						 "for compatibility with PostgreSQL releases prior to 9.0."),
+			GUC_HOST_SECURITY
 		},
 		&lo_compat_privileges,
 		false,
@@ -1965,6 +2061,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("When generating SQL fragments, quote all identifiers."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 		},
 		&quote_all_identifiers,
 		false,
@@ -1975,6 +2072,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether data checksums are turned on for this cluster."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_checksums,
@@ -1985,7 +2083,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_sequence_numbers,
 		true,
@@ -1995,7 +2094,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_split_messages,
 		true,
@@ -2006,6 +2106,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"parallel_leader_participation", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
 			gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&parallel_leader_participation,
@@ -2017,6 +2118,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Allow JIT compilation."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_enabled,
@@ -2028,6 +2130,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with debugger."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_debugging_support,
@@ -2045,6 +2148,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_dump_bitcode,
@@ -2056,6 +2160,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of expressions."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_expressions,
@@ -2067,6 +2172,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with perf profiler."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_profiling_support,
@@ -2084,6 +2190,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of tuple deforming."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_tuple_deforming,
@@ -2094,6 +2201,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Whether to continue running after a failure to sync data files."),
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&data_sync_retry,
 		false,
@@ -2103,6 +2212,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&wal_receiver_create_temp_slot,
 		false,
@@ -2123,6 +2234,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Forces a switch to the next WAL file if a "
 						 "new file has not been started within N seconds."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_S
 		},
 		&XLogArchiveTimeout,
@@ -2133,6 +2245,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup after authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_NETWORK_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PostAuthDelay,
@@ -2143,7 +2256,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Sets the default statistics target."),
 			gettext_noop("This applies to table columns that have not had a "
-						 "column-specific target set via ALTER TABLE SET STATISTICS.")
+						 "column-specific target set via ALTER TABLE SET STATISTICS."),
+			GUC_DATABASE_SECURITY
 		},
 		&default_statistics_target,
 		100, 1, 10000,
@@ -2156,6 +2270,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will merge subqueries into upper "
 						 "queries if the resulting FROM list would have no more than "
 						 "this many items."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&from_collapse_limit,
@@ -2169,6 +2284,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will flatten explicit JOIN "
 						 "constructs into lists of FROM items whenever a "
 						 "list of no more than this many items would result."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&join_collapse_limit,
@@ -2179,6 +2295,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&geqo_threshold,
@@ -2189,6 +2306,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_effort,
@@ -2199,6 +2317,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of individuals in the population."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_pool_size,
@@ -2209,6 +2328,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of iterations of the algorithm."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_generations,
@@ -2221,6 +2341,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
 			gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&DeadlockTimeout,
@@ -2232,6 +2353,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&max_standby_archive_delay,
@@ -2243,6 +2365,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&max_standby_streaming_delay,
@@ -2254,6 +2377,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the minimum delay for applying changes during recovery."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&recovery_min_apply_delay,
@@ -2265,6 +2389,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&wal_receiver_status_interval,
@@ -2276,6 +2401,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum wait time to receive data from the sending server."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&wal_receiver_timeout,
@@ -2286,7 +2412,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the maximum number of concurrent connections."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&MaxConnections,
 		100, 1, MAX_BACKENDS,
@@ -2297,7 +2424,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the number of connection slots reserved for superusers."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&ReservedBackends,
 		3, 0, MAX_BACKENDS,
@@ -2308,6 +2436,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Amount of dynamic shared memory reserved at startup."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&min_dynamic_shared_memory,
@@ -2323,6 +2452,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the number of shared memory buffers used by the server."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&NBuffers,
@@ -2334,6 +2464,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_buffers", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of temporary buffers used by each session."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN
 		},
 		&num_temp_buffers,
@@ -2344,7 +2475,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"port", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the TCP port the server listens on."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&PostPortNumber,
 		DEF_PGPORT, 1, 65535,
@@ -2359,7 +2491,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_NETWORK_SECURITY
 		},
 		&Unix_socket_permissions,
 		0777, 0000, 0777,
@@ -2373,7 +2506,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_HOST_SECURITY
 		},
 		&Log_file_mode,
 		0600, 0000, 0777,
@@ -2388,6 +2522,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "in the form accepted by the chmod and umask system "
 						 "calls. (To use the customary octal format the number "
 						 "must start with a 0 (zero).)"),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_directory_mode,
@@ -2401,6 +2536,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This much memory can be used by each internal "
 						 "sort operation and hash table before switching to "
 						 "temporary disk files."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB | GUC_EXPLAIN
 		},
 		&work_mem,
@@ -2412,6 +2548,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used for maintenance operations."),
 			gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
@@ -2424,6 +2561,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum memory to be used for logical decoding."),
 			gettext_noop("This much memory can be used by each internal "
 						 "reorder buffer before spilling to disk."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&logical_decoding_work_mem,
@@ -2440,6 +2578,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum stack depth, in kilobytes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&max_stack_depth,
@@ -2451,6 +2590,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
 			gettext_noop("Limits the total size of all temporary files used by each process."),
 			gettext_noop("-1 means no limit."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&temp_file_limit,
@@ -2461,7 +2601,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostPageHit,
 		1, 0, 10000,
@@ -2471,7 +2612,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostPageMiss,
 		2, 0, 10000,
@@ -2481,7 +2623,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostPageDirty,
 		20, 0, 10000,
@@ -2491,7 +2634,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost amount available before napping."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostLimit,
 		200, 1, 10000,
@@ -2501,7 +2645,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&autovacuum_vac_cost_limit,
 		-1, -1, 10000,
@@ -2511,7 +2656,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
 			gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_files_per_process,
 		1000, 64, INT_MAX,
@@ -2524,7 +2670,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_prepared_xacts,
 		0, 0, MAX_BACKENDS,
@@ -2536,6 +2683,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the minimum OID of tables for tracking locks."),
 			gettext_noop("Is used to avoid output on system tables."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_oidmin,
@@ -2546,6 +2694,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_table,
@@ -2558,6 +2707,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any statement."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&StatementTimeout,
@@ -2569,6 +2719,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&LockTimeout,
@@ -2580,6 +2731,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&IdleInTransactionSessionTimeout,
@@ -2591,6 +2743,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&IdleSessionTimeout,
@@ -2601,7 +2754,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a table row."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_freeze_min_age,
 		50000000, 0, 1000000000,
@@ -2611,7 +2765,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2621,7 +2776,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_multixact_freeze_min_age,
 		5000000, 0, 1000000000,
@@ -2631,7 +2787,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_multixact_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2641,7 +2798,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_defer_cleanup_age", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_defer_cleanup_age,
 		0, 0, 1000000,			/* see ComputeXidHorizons */
@@ -2650,7 +2808,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2659,7 +2818,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_multixact_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2674,7 +2834,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of locks per transaction."),
 			gettext_noop("The shared lock table is sized on the assumption that "
 						 "at most max_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_HOST_SECURITY
 		},
 		&max_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2686,7 +2847,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of predicate locks per transaction."),
 			gettext_noop("The shared predicate lock table is sized on the assumption that "
 						 "at most max_pred_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_HOST_SECURITY
 		},
 		&max_predicate_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2697,7 +2859,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
 			gettext_noop("If more than this total of pages and tuples in the same relation are locked "
-						 "by a connection, those locks are replaced by a relation-level lock.")
+						 "by a connection, those locks are replaced by a relation-level lock."),
+			GUC_HOST_SECURITY
 		},
 		&max_predicate_locks_per_relation,
 		-2, INT_MIN, INT_MAX,
@@ -2708,7 +2871,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
 			gettext_noop("If more than this number of tuples on the same page are locked "
-						 "by a connection, those locks are replaced by a page-level lock.")
+						 "by a connection, those locks are replaced by a page-level lock."),
+			GUC_HOST_SECURITY
 		},
 		&max_predicate_locks_per_page,
 		2, 0, INT_MAX,
@@ -2719,6 +2883,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the maximum allowed time to complete client authentication."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&AuthenticationTimeout,
@@ -2731,6 +2896,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup before authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_NETWORK_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PreAuthDelay,
@@ -2742,6 +2908,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
 			gettext_noop("Sets the size of WAL files held for standby servers."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&wal_keep_size_mb,
@@ -2753,6 +2920,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the minimum size to shrink the WAL to."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&min_wal_size_mb,
@@ -2765,6 +2933,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the WAL size that triggers a checkpoint."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&max_wal_size_mb,
@@ -2777,6 +2946,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_S
 		},
 		&CheckPointTimeout,
@@ -2791,6 +2961,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Write a message to the server log if checkpoints "
 						 "caused by the filling of checkpoint segment files happens more "
 						 "frequently than this number of seconds. Zero turns off the warning."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_S
 		},
 		&CheckPointWarning,
@@ -2802,6 +2973,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&checkpoint_flush_after,
@@ -2813,6 +2985,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_XBLOCKS
 		},
 		&XLOGbuffers,
@@ -2824,6 +2997,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Time between WAL flushes performed in the WAL writer."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&WalWriterDelay,
@@ -2835,6 +3009,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_XBLOCKS
 		},
 		&WalWriterFlushAfter,
@@ -2846,6 +3021,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&wal_skip_threshold,
@@ -2856,7 +3032,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_wal_senders,
 		10, 0, MAX_BACKENDS,
@@ -2867,7 +3044,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_wal_senders */
 		{"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_replication_slots,
 		10, 0, MAX_BACKENDS /* XXX? */ ,
@@ -2880,6 +3058,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Replication slots will be marked as failed, and segments released "
 						 "for deletion or recycling, if this much space is occupied by WAL "
 						 "on disk."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&max_slot_wal_keep_size_mb,
@@ -2891,6 +3070,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum time to wait for WAL replication."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&wal_sender_timeout,
@@ -2902,7 +3082,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_delay", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Sets the delay in microseconds between transaction commit and "
 						 "flushing WAL to disk."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 			/* we have no microseconds designation, so can't supply units here */
 		},
 		&CommitDelay,
@@ -2914,7 +3095,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_siblings", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the minimum concurrent open transactions before performing "
 						 "commit_delay."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&CommitSiblings,
 		5, 0, 1000,
@@ -2927,7 +3109,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This affects real, double precision, and geometric data types. "
 						 "A zero or negative parameter value is added to the standard "
 						 "number of digits (FLT_DIG or DBL_DIG as appropriate). "
-						 "Any value greater than zero selects precise output mode.")
+						 "Any value greater than zero selects precise output mode."),
+			GUC_DATABASE_SECURITY
 		},
 		&extra_float_digits,
 		1, -15, 3,
@@ -2940,6 +3123,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "a sample of statements will be logged."
 						 " Sampling is determined by log_statement_sample_rate."),
 			gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_sample,
@@ -2952,6 +3136,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "all statements will be logged."),
 			gettext_noop("Zero prints all queries. -1 turns this feature off."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_statement,
@@ -2964,6 +3149,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "autovacuum actions will be logged."),
 			gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&Log_autovacuum_min_duration,
@@ -2975,6 +3161,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("When logging statements, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length,
@@ -2986,6 +3173,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("When reporting an error, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length_on_error,
@@ -2997,6 +3185,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer sleep time between rounds."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&BgWriterDelay,
@@ -3007,7 +3196,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer maximum number of LRU pages to flush per round."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&bgwriter_lru_maxpages,
 		100, 0, INT_MAX / 2,	/* Same upper limit as shared_buffers */
@@ -3018,6 +3208,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&bgwriter_flush_after,
@@ -3031,6 +3222,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_EXPLAIN
 		},
 		&effective_io_concurrency,
@@ -3049,6 +3241,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("A variant of effective_io_concurrency that is used for maintenance work."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_EXPLAIN
 		},
 		&maintenance_io_concurrency,
@@ -3065,6 +3258,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&backend_flush_after,
@@ -3078,6 +3272,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Maximum number of concurrent worker processes."),
 			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_worker_processes,
 		8, 0, MAX_BACKENDS,
@@ -3090,6 +3285,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of logical replication worker processes."),
 			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_logical_replication_workers,
 		4, 0, MAX_BACKENDS,
@@ -3102,6 +3298,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of table synchronization workers per subscription."),
 			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_sync_workers_per_subscription,
 		2, 0, MAX_BACKENDS,
@@ -3112,6 +3309,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N minutes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MIN
 		},
 		&Log_RotationAge,
@@ -3123,6 +3321,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N kilobytes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&Log_RotationSize,
@@ -3134,6 +3333,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of function arguments."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_function_args,
@@ -3145,6 +3345,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of index keys."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_index_keys,
@@ -3156,6 +3357,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum identifier length."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_identifier_length,
@@ -3167,6 +3369,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of a disk block."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&block_size,
@@ -3178,6 +3381,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the number of pages per disk file."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&segment_size,
@@ -3189,6 +3393,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the block size in the write ahead log."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_block_size,
@@ -3201,6 +3406,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the time to wait before retrying to retrieve WAL "
 						 "after a failed attempt."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&wal_retrieve_retry_interval,
@@ -3212,6 +3418,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of write ahead log segments."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_segment_size,
@@ -3225,6 +3432,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Time to sleep between autovacuum runs."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_S
 		},
 		&autovacuum_naptime,
@@ -3234,7 +3442,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_thresh,
 		50, 0, INT_MAX,
@@ -3243,7 +3452,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_ins_thresh,
 		1000, -1, INT_MAX,
@@ -3252,7 +3462,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_anl_thresh,
 		50, 0, INT_MAX,
@@ -3262,7 +3473,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_freeze_max_age,
 
@@ -3277,7 +3489,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_multixact_freeze_max_age,
 		400000000, 10000, 2000000000,
@@ -3287,7 +3500,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&autovacuum_max_workers,
 		3, 1, MAX_BACKENDS,
@@ -3297,7 +3511,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&max_parallel_maintenance_workers,
 		2, 0, 1024,
@@ -3308,6 +3523,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per executor node."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers_per_gather,
@@ -3319,6 +3535,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers,
@@ -3330,6 +3547,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&autovacuum_work_mem,
@@ -3341,6 +3559,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"old_snapshot_threshold", PGC_POSTMASTER, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Time before a snapshot is too old to read pages changed after the snapshot was taken."),
 			gettext_noop("A value of -1 disables this feature."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MIN
 		},
 		&old_snapshot_threshold,
@@ -3352,6 +3571,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between issuing TCP keepalives."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_idle,
@@ -3363,6 +3583,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between TCP keepalive retransmits."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_interval,
@@ -3374,6 +3595,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"ssl_renegotiation_limit", PGC_USERSET, CONN_AUTH_SSL,
 			gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE,
 		},
 		&ssl_renegotiation_limit,
@@ -3387,6 +3609,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This controls the number of consecutive keepalive retransmits that can be "
 						 "lost before a connection is considered dead. A value of 0 uses the "
 						 "system default."),
+			GUC_NETWORK_SECURITY
 		},
 		&tcp_keepalives_count,
 		0, 0, INT_MAX,
@@ -3397,6 +3620,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
 			gettext_noop("Sets the maximum allowed result for exact search by GIN."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			0
 		},
 		&GinFuzzySearchLimit,
@@ -3409,6 +3633,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the planner's assumption about the total size of the data caches."),
 			gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
 						 "This is measured in disk pages, which are normally 8 kB each."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&effective_cache_size,
@@ -3420,6 +3645,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of table data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_table_scan_size,
@@ -3431,6 +3657,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of index data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_index_scan_size,
@@ -3443,6 +3670,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version as an integer."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_num,
@@ -3454,6 +3682,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_temp_files", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
 			gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&log_temp_files,
@@ -3465,6 +3694,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"track_activity_query_size", PGC_POSTMASTER, STATS_COLLECTOR,
 			gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE
 		},
 		&pgstat_track_activity_query_size,
@@ -3476,6 +3706,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum size of the pending list for GIN index."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_KB
 		},
 		&gin_pending_list_limit,
@@ -3487,6 +3718,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_user_timeout", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("TCP user timeout."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&tcp_user_timeout,
@@ -3498,6 +3730,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("The size of huge page that should be requested."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&huge_page_size,
@@ -3509,6 +3742,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"debug_invalidate_system_caches_always", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Aggressively invalidate system caches for debugging purposes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&debug_invalidate_system_caches_always,
@@ -3532,6 +3766,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"client_connection_check_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the time interval between checks for disconnection while running queries."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&client_connection_check_interval,
@@ -3553,6 +3788,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "sequentially fetched disk page."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&seq_page_cost,
@@ -3564,6 +3800,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "nonsequentially fetched disk page."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&random_page_cost,
@@ -3575,6 +3812,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each tuple (row)."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cpu_tuple_cost,
@@ -3586,6 +3824,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each index entry during an index scan."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cpu_index_tuple_cost,
@@ -3597,6 +3836,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each operator or function call."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cpu_operator_cost,
@@ -3608,6 +3848,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "passing each tuple (row) from worker to leader backend."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&parallel_tuple_cost,
@@ -3619,6 +3860,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "starting up worker processes for parallel query."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&parallel_setup_cost,
@@ -3630,6 +3872,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT compilation if query is more expensive."),
 			gettext_noop("-1 disables JIT compilation."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_above_cost,
@@ -3641,6 +3884,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
 			gettext_noop("-1 disables optimization."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_optimize_above_cost,
@@ -3652,6 +3896,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT inlining if query is more expensive."),
 			gettext_noop("-1 disables inlining."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_inline_above_cost,
@@ -3664,6 +3909,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the fraction of "
 						 "a cursor's rows that will be retrieved."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cursor_tuple_fraction,
@@ -3675,6 +3921,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: selective pressure within the population."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_selection_bias,
@@ -3686,6 +3933,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: seed for random path selection."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_seed,
@@ -3697,6 +3945,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Multiple of work_mem to use for hash tables."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&hash_mem_multiplier,
@@ -3707,7 +3956,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Multiple of the average buffer usage to free per round."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&bgwriter_lru_multiplier,
 		2.0, 0.0, 10.0,
@@ -3718,6 +3968,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"seed", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the seed for random-number generation."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&phony_random_seed,
@@ -3729,6 +3980,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost delay in milliseconds."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&VacuumCostDelay,
@@ -3740,6 +3992,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&autovacuum_vac_cost_delay,
@@ -3750,7 +4003,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_scale,
 		0.2, 0.0, 100.0,
@@ -3760,7 +4014,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_ins_scale,
 		0.2, 0.0, 100.0,
@@ -3770,7 +4025,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_anl_scale,
 		0.1, 0.0, 100.0,
@@ -3780,7 +4036,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&CheckPointCompletionTarget,
 		0.9, 0.0, 1.0,
@@ -3790,7 +4047,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
-			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
+			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log)."),
+			GUC_HOST_SECURITY
 		},
 		&log_statement_sample_rate,
 		1.0, 0.0, 1.0,
@@ -3801,7 +4059,8 @@ static struct config_real ConfigureNamesReal[] =
 		{"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the fraction of transactions from which to log all statements."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
-						 "statements for all transactions).")
+						 "statements for all transactions)."),
+			GUC_HOST_SECURITY
 		},
 		&log_xact_sample_rate,
 		0.0, 0.0, 1.0,
@@ -3820,7 +4079,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
 			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&XLogArchiveCommand,
 		"",
@@ -3830,7 +4090,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryRestoreCommand,
 		"",
@@ -3840,7 +4101,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed at every restart point."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&archiveCleanupCommand,
 		"",
@@ -3850,7 +4112,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryEndCommand,
 		"",
@@ -3860,7 +4123,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Specifies the timeline to recover into."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_timeline_string,
 		"latest",
@@ -3870,7 +4134,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_string,
 		"",
@@ -3879,7 +4144,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the transaction ID up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_xid_string,
 		"",
@@ -3888,7 +4154,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the time stamp up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_time_string,
 		"",
@@ -3897,7 +4164,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the named restore point up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_name_string,
 		"",
@@ -3906,7 +4174,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_lsn_string,
 		"",
@@ -3916,7 +4185,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"promote_trigger_file", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Specifies a file name whose presence ends recovery in the standby."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&PromoteTriggerFile,
 		"",
@@ -3927,7 +4197,7 @@ static struct config_string ConfigureNamesString[] =
 		{"primary_conninfo", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the connection string to be used to connect to the sending server."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&PrimaryConnInfo,
 		"",
@@ -3937,7 +4207,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the name of the replication slot to use on the sending server."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&PrimarySlotName,
 		"",
@@ -3948,6 +4219,7 @@ static struct config_string ConfigureNamesString[] =
 		{"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the client's character set encoding."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME | GUC_REPORT
 		},
 		&client_encoding_string,
@@ -3958,7 +4230,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Controls information prefixed to each log line."),
-			gettext_noop("If blank, no prefix is used.")
+			gettext_noop("If blank, no prefix is used."),
+			GUC_HOST_SECURITY
 		},
 		&Log_line_prefix,
 		"%m [%p] ",
@@ -3968,7 +4241,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Sets the time zone to use in log messages."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_timezone_string,
 		"GMT",
@@ -3980,6 +4254,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the display format for date and time values."),
 			gettext_noop("Also controls interpretation of ambiguous "
 						 "date inputs."),
+			GUC_DATABASE_SECURITY,
 			GUC_LIST_INPUT | GUC_REPORT
 		},
 		&datestyle_string,
@@ -3991,6 +4266,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default table access method for new tables."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME
 		},
 		&default_table_access_method,
@@ -4002,6 +4278,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default tablespace to create tables and indexes in."),
 			gettext_noop("An empty string selects the database's default tablespace."),
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME
 		},
 		&default_tablespace,
@@ -4013,6 +4290,7 @@ static struct config_string ConfigureNamesString[] =
 		{"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&temp_tablespaces,
@@ -4027,7 +4305,7 @@ static struct config_string ConfigureNamesString[] =
 						 "the specified name does not have a directory component (i.e., the "
 						 "name does not contain a slash), the system will search this path for "
 						 "the specified file."),
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&Dynamic_library_path,
 		"$libdir",
@@ -4038,7 +4316,7 @@ static struct config_string ConfigureNamesString[] =
 		{"krb_server_keyfile", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the location of the Kerberos server key file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&pg_krb_server_keyfile,
 		PG_KRB_SRVTAB,
@@ -4048,7 +4326,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the Bonjour service name."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&bonjour_name,
 		"",
@@ -4061,6 +4340,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_collate", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the collation order locale."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_collate,
@@ -4072,6 +4352,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_ctype", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the character classification and case conversion locale."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_ctype,
@@ -4082,7 +4363,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the language in which messages are displayed."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_messages,
 		"",
@@ -4092,7 +4374,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting monetary amounts."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_monetary,
 		"C",
@@ -4102,7 +4385,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting numbers."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_numeric,
 		"C",
@@ -4112,7 +4396,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting date and time values."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_time,
 		"C",
@@ -4123,6 +4408,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into each backend."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&session_preload_libraries_string,
@@ -4134,6 +4420,7 @@ static struct config_string ConfigureNamesString[] =
 		{"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into server."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&shared_preload_libraries_string,
@@ -4145,6 +4432,7 @@ static struct config_string ConfigureNamesString[] =
 		{"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&local_preload_libraries_string,
@@ -4156,6 +4444,7 @@ static struct config_string ConfigureNamesString[] =
 		{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the schema search order for names that are not schema-qualified."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_EXPLAIN
 		},
 		&namespace_search_path,
@@ -4168,6 +4457,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server (database) character set encoding."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_encoding_string,
@@ -4180,6 +4470,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_version", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_string,
@@ -4192,6 +4483,7 @@ static struct config_string ConfigureNamesString[] =
 		{"role", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the current role."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&role_string,
@@ -4204,6 +4496,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_authorization", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the session user name."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&session_authorization_string,
@@ -4217,6 +4510,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Valid values are combinations of \"stderr\", "
 						 "\"syslog\", \"csvlog\", and \"eventlog\", "
 						 "depending on the platform."),
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT
 		},
 		&Log_destination_string,
@@ -4228,6 +4522,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the destination directory for log files."),
 			gettext_noop("Can be specified as relative to the data directory "
 						 "or as absolute path."),
+			GUC_HOST_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_directory,
@@ -4238,6 +4533,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_filename", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the file name pattern for log files."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_filename,
@@ -4249,7 +4545,8 @@ static struct config_string ConfigureNamesString[] =
 		{"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the program name used to identify PostgreSQL "
 						 "messages in syslog."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_ident_str,
 		"postgres",
@@ -4260,7 +4557,8 @@ static struct config_string ConfigureNamesString[] =
 		{"event_source", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Sets the application name used to identify "
 						 "PostgreSQL messages in the event log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&event_source,
 		DEFAULT_EVENT_SOURCE,
@@ -4271,6 +4569,7 @@ static struct config_string ConfigureNamesString[] =
 		{"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&timezone_string,
@@ -4280,7 +4579,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Selects a file of time zone abbreviations."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&timezone_abbreviations_string,
 		NULL,
@@ -4291,7 +4591,8 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the owning group of the Unix-domain socket."),
 			gettext_noop("The owning user of the socket is always the user "
-						 "that starts the server.")
+						 "that starts the server."),
+			GUC_NETWORK_SECURITY
 		},
 		&Unix_socket_group,
 		"",
@@ -4302,6 +4603,7 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the directories where Unix-domain sockets will be created."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_directories,
@@ -4317,6 +4619,7 @@ static struct config_string ConfigureNamesString[] =
 		{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the host name or IP address(es) to listen to."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_LIST_INPUT
 		},
 		&ListenAddresses,
@@ -4332,6 +4635,7 @@ static struct config_string ConfigureNamesString[] =
 		{"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's data directory."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_SUPERUSER_ONLY | GUC_DISALLOW_IN_AUTO_FILE
 		},
 		&data_directory,
@@ -4343,6 +4647,7 @@ static struct config_string ConfigureNamesString[] =
 		{"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's main configuration file."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_DISALLOW_IN_FILE | GUC_SUPERUSER_ONLY
 		},
 		&ConfigFileName,
@@ -4354,7 +4659,7 @@ static struct config_string ConfigureNamesString[] =
 		{"hba_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's \"hba\" configuration file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&HbaFileName,
 		NULL,
@@ -4365,7 +4670,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ident_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's \"ident\" configuration file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&IdentFileName,
 		NULL,
@@ -4376,7 +4681,7 @@ static struct config_string ConfigureNamesString[] =
 		{"external_pid_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Writes the postmaster PID to the specified file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&external_pid_file,
 		NULL,
@@ -4387,6 +4692,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the name of the SSL library."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&ssl_library,
@@ -4401,7 +4707,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server certificate file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&ssl_cert_file,
 		"server.crt",
@@ -4411,7 +4718,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server private key file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&ssl_key_file,
 		"server.key",
@@ -4421,7 +4729,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate authority file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&ssl_ca_file,
 		"",
@@ -4431,7 +4740,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&ssl_crl_file,
 		"",
@@ -4441,7 +4751,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list directory."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&ssl_crl_dir,
 		"",
@@ -4452,7 +4763,7 @@ static struct config_string ConfigureNamesString[] =
 		{"stats_temp_directory", PGC_SIGHUP, STATS_COLLECTOR,
 			gettext_noop("Writes temporary statistics files to the specified directory."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&pgstat_temp_directory,
 		PG_STAT_TMP_DIR,
@@ -4463,6 +4774,7 @@ static struct config_string ConfigureNamesString[] =
 		{"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_LIST_INPUT
 		},
 		&SyncRepStandbyNames,
@@ -4473,7 +4785,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets default text search configuration."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&TSCurrentConfig,
 		"pg_catalog.simple",
@@ -4484,7 +4797,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the list of allowed SSL ciphers."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&SSLCipherSuites,
 #ifdef USE_OPENSSL
@@ -4499,7 +4812,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ecdh_curve", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the curve to use for ECDH."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&SSLECDHCurve,
 #ifdef USE_SSL
@@ -4514,7 +4827,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_dh_params_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL DH parameters file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&ssl_dh_params_file,
 		"",
@@ -4525,7 +4838,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_passphrase_command", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Command to obtain passphrases for SSL."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY | GUC_NETWORK_SECURITY
 		},
 		&ssl_passphrase_command,
 		"",
@@ -4536,6 +4849,7 @@ static struct config_string ConfigureNamesString[] =
 		{"application_name", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Sets the application name to be reported in statistics and logs."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
 		},
 		&application_name,
@@ -4547,6 +4861,7 @@ static struct config_string ConfigureNamesString[] =
 		{"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
 			gettext_noop("Sets the name of the cluster, which is included in the process title."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_IS_NAME
 		},
 		&cluster_name,
@@ -4558,6 +4873,7 @@ static struct config_string ConfigureNamesString[] =
 		{"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
 			gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_NOT_IN_SAMPLE
 		},
 		&wal_consistency_checking_string,
@@ -4569,7 +4885,7 @@ static struct config_string ConfigureNamesString[] =
 		{"jit_provider", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("JIT provider to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&jit_provider,
 		"llvmjit",
@@ -4580,7 +4896,7 @@ static struct config_string ConfigureNamesString[] =
 		{"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Log backtrace for errors in these functions."),
 			NULL,
-			GUC_NOT_IN_SAMPLE
+			GUC_HOST_SECURITY
 		},
 		&backtrace_functions,
 		"",
@@ -4599,7 +4915,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&backslash_quote,
 		BACKSLASH_QUOTE_SAFE_ENCODING, backslash_quote_options,
@@ -4609,7 +4926,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the output format for bytea."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&bytea_output,
 		BYTEA_OUTPUT_HEX, bytea_output_options,
@@ -4620,7 +4938,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the message levels that are sent to the client."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_NETWORK_SECURITY
 		},
 		&client_min_messages,
 		NOTICE, client_message_level_options,
@@ -4630,7 +4949,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"compute_query_id", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Compute query identifiers."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&compute_query_id,
 		COMPUTE_QUERY_ID_AUTO, compute_query_id_options,
@@ -4642,6 +4962,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Enables the planner to use constraints to optimize queries."),
 			gettext_noop("Table scans will be skipped if their constraints"
 						 " guarantee that no rows match the query."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&constraint_exclusion,
@@ -4653,6 +4974,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default compression for new columns."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME
 		},
 		&default_toast_compression,
@@ -4663,7 +4985,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the transaction isolation level of each new transaction."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&DefaultXactIsoLevel,
 		XACT_READ_COMMITTED, isolation_level_options,
@@ -4674,6 +4997,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's isolation level."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactIsoLevel,
@@ -4685,6 +5009,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the display format for interval values."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&IntervalStyle,
@@ -4695,7 +5020,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the verbosity of logged messages."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Log_error_verbosity,
 		PGERROR_DEFAULT, log_error_verbosity_options,
@@ -4706,7 +5032,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_messages", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the message levels that are logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_HOST_SECURITY
 		},
 		&log_min_messages,
 		WARNING, server_message_level_options,
@@ -4717,7 +5044,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Causes all statements generating error at or above this level to be logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_HOST_SECURITY
 		},
 		&log_min_error_statement,
 		ERROR, server_message_level_options,
@@ -4727,7 +5055,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_statement", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the type of statements logged."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_statement,
 		LOGSTMT_NONE, log_statement_options,
@@ -4737,7 +5066,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_facility,
 #ifdef HAVE_SYSLOG
@@ -4752,7 +5082,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&SessionReplicationRole,
 		SESSION_REPLICATION_ROLE_ORIGIN, session_replication_role_options,
@@ -4762,7 +5093,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the current transaction's synchronization level."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&synchronous_commit,
 		SYNCHRONOUS_COMMIT_ON, synchronous_commit_options,
@@ -4772,7 +5104,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
 			gettext_noop("Allows archiving of WAL files using archive_command."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&XLogArchiveMode,
 		ARCHIVE_MODE_OFF, archive_mode_options,
@@ -4782,7 +5115,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the action to perform upon reaching the recovery target."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryTargetAction,
 		RECOVERY_TARGET_ACTION_PAUSE, recovery_target_action_options,
@@ -4793,7 +5127,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"trace_recovery_messages", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Enables logging of recovery-related debugging information."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_HOST_SECURITY
 		},
 		&trace_recovery_messages,
 
@@ -4808,7 +5143,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"track_functions", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects function-level statistics on database activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&pgstat_track_functions,
 		TRACK_FUNC_OFF, track_function_options,
@@ -4818,7 +5154,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the level of information written to the WAL."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_level,
 		WAL_LEVEL_REPLICA, wal_level_options,
@@ -4828,7 +5165,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the dynamic shared memory implementation used."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&dynamic_shared_memory_type,
 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
@@ -4838,7 +5176,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&shared_memory_type,
 		DEFAULT_SHARED_MEMORY_TYPE, shared_memory_options,
@@ -4848,7 +5187,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Selects the method used for forcing WAL updates to disk."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&sync_method,
 		DEFAULT_SYNC_METHOD, sync_method_options,
@@ -4858,7 +5198,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets how binary values are to be encoded in XML."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&xmlbinary,
 		XMLBINARY_BASE64, xmlbinary_options,
@@ -4869,7 +5210,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets whether XML data in implicit parsing and serialization "
 						 "operations is to be considered as documents or content fragments."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&xmloption,
 		XMLOPTION_CONTENT, xmloption_options,
@@ -4879,7 +5221,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Use of huge pages on Linux or Windows."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&huge_pages,
 		HUGE_PAGES_TRY, huge_pages_options,
@@ -4890,6 +5233,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"force_parallel_mode", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Forces use of parallel query facilities."),
 			gettext_noop("If possible, run query using a parallel worker and with parallel restrictions."),
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&force_parallel_mode,
@@ -4900,7 +5244,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
 			gettext_noop("Chooses the algorithm for encrypting passwords."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&Password_encryption,
 		PASSWORD_TYPE_SCRAM_SHA_256, password_encryption_options,
@@ -4913,6 +5258,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Prepared statements can have custom and generic plans, and the planner "
 						 "will attempt to choose which is better.  This can be set to override "
 						 "the default behavior."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&plan_cache_mode,
@@ -4924,7 +5270,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_min_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the minimum SSL/TLS protocol version to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&ssl_min_protocol_version,
 		PG_TLS1_2_VERSION,
@@ -4936,7 +5282,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_max_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the maximum SSL/TLS protocol version to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&ssl_max_protocol_version,
 		PG_TLS_ANY,
@@ -4947,6 +5293,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_init_sync_method", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
+			NULL,
+			GUC_HOST_SECURITY,
 		},
 		&recovery_init_sync_method,
 		RECOVERY_INIT_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
@@ -7233,6 +7581,24 @@ parse_and_validate_value(struct config_generic *record,
 	return true;
 }
 
+static bool
+role_has_privileges(Oid roleid, int privileges)
+{
+	if ((privileges & GUC_DATABASE_SECURITY) &&
+		! has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
+		return false;
+
+	if ((privileges & GUC_HOST_SECURITY) &&
+		! has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
+		return false;
+
+	if ((privileges & GUC_NETWORK_SECURITY) &&
+		! has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
+		return false;
+
+	return true;
+}
+
 
 /*
  * Sets option `name' to given value.
@@ -7380,7 +7746,8 @@ set_config_option(const char *name, const char *value,
 			break;
 		case PGC_SU_BACKEND:
 			/* Reject if we're connecting but user is not superuser */
-			if (context == PGC_BACKEND)
+			if (context == PGC_BACKEND &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -7427,7 +7794,8 @@ set_config_option(const char *name, const char *value,
 			}
 			break;
 		case PGC_SUSET:
-			if (context == PGC_USERSET || context == PGC_BACKEND)
+			if ((context == PGC_USERSET || context == PGC_BACKEND) &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -8469,26 +8837,30 @@ replace_auto_config_value(ConfigVariable **head_p, ConfigVariable **tail_p,
 void
 AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 {
+	VariableSetKind kind;
 	char	   *name;
 	char	   *value;
 	bool		resetall = false;
+	bool		is_super = false;
 	ConfigVariable *head = NULL;
 	ConfigVariable *tail = NULL;
 	volatile int Tmpfd;
 	char		AutoConfFileName[MAXPGPATH];
 	char		AutoConfTmpFileName[MAXPGPATH];
 
-	if (!superuser())
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to execute ALTER SYSTEM command")));
-
 	/*
 	 * Extract statement arguments
 	 */
 	name = altersysstmt->setstmt->name;
+	kind = altersysstmt->setstmt->kind;
+	is_super = superuser();
+
+	if (!is_super && kind == VAR_RESET_ALL)
+		ereport(ERROR,
+				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+				 errmsg("must be superuser to execute ALTER SYSTEM RESET ALL command")));
 
-	switch (altersysstmt->setstmt->kind)
+	switch (kind)
 	{
 		case VAR_SET_VALUE:
 			value = ExtractSetVariableArgs(altersysstmt->setstmt);
@@ -8532,6 +8904,15 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 					 errmsg("parameter \"%s\" cannot be changed",
 							name)));
 
+		/*
+		 * Deny non-superusers trying to run ALTER SYSTEM SET on variables
+		 * unless they belong to a role intended for the purpose.
+		 */
+		if (!is_super && !role_has_privileges(GetUserId(), record->privileges))
+			ereport(ERROR,
+					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+					 errmsg("permission denied to set parameter \"%s\"", name)));
+
 		/*
 		 * If a value is specified, verify that it's sane.
 		 */
@@ -8893,6 +9274,7 @@ init_custom_variable(const char *name,
 					 const char *short_desc,
 					 const char *long_desc,
 					 GucContext context,
+					 int privileges,
 					 int flags,
 					 enum config_type type,
 					 size_t sz)
@@ -8938,6 +9320,7 @@ init_custom_variable(const char *name,
 	gen->group = CUSTOM_OPTIONS;
 	gen->short_desc = short_desc;
 	gen->long_desc = long_desc;
+	gen->privileges = privileges;
 	gen->flags = flags;
 	gen->vartype = type;
 
@@ -9136,6 +9519,7 @@ DefineCustomBoolVariable(const char *name,
 						 bool *valueAddr,
 						 bool bootValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucBoolCheckHook check_hook,
 						 GucBoolAssignHook assign_hook,
@@ -9144,8 +9528,8 @@ DefineCustomBoolVariable(const char *name,
 	struct config_bool *var;
 
 	var = (struct config_bool *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_BOOL, sizeof(struct config_bool));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_BOOL, sizeof(struct config_bool));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9164,6 +9548,7 @@ DefineCustomIntVariable(const char *name,
 						int minValue,
 						int maxValue,
 						GucContext context,
+						int privileges,
 						int flags,
 						GucIntCheckHook check_hook,
 						GucIntAssignHook assign_hook,
@@ -9172,8 +9557,8 @@ DefineCustomIntVariable(const char *name,
 	struct config_int *var;
 
 	var = (struct config_int *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_INT, sizeof(struct config_int));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_INT, sizeof(struct config_int));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9194,6 +9579,7 @@ DefineCustomRealVariable(const char *name,
 						 double minValue,
 						 double maxValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucRealCheckHook check_hook,
 						 GucRealAssignHook assign_hook,
@@ -9202,8 +9588,8 @@ DefineCustomRealVariable(const char *name,
 	struct config_real *var;
 
 	var = (struct config_real *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_REAL, sizeof(struct config_real));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_REAL, sizeof(struct config_real));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9222,6 +9608,7 @@ DefineCustomStringVariable(const char *name,
 						   char **valueAddr,
 						   const char *bootValue,
 						   GucContext context,
+						   int privileges,
 						   int flags,
 						   GucStringCheckHook check_hook,
 						   GucStringAssignHook assign_hook,
@@ -9230,8 +9617,8 @@ DefineCustomStringVariable(const char *name,
 	struct config_string *var;
 
 	var = (struct config_string *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_STRING, sizeof(struct config_string));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_STRING, sizeof(struct config_string));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->check_hook = check_hook;
@@ -9248,6 +9635,7 @@ DefineCustomEnumVariable(const char *name,
 						 int bootValue,
 						 const struct config_enum_entry *options,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucEnumCheckHook check_hook,
 						 GucEnumAssignHook assign_hook,
@@ -9256,8 +9644,8 @@ DefineCustomEnumVariable(const char *name,
 	struct config_enum *var;
 
 	var = (struct config_enum *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_ENUM, sizeof(struct config_enum));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_ENUM, sizeof(struct config_enum));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index a7c3a4958e..87e49b8960 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -198,6 +198,14 @@ typedef enum
 
 #define GUC_QUALIFIER_SEPARATOR '.'
 
+/*
+ * privilege bits required to modify a GUC variable
+ */
+#define GUC_DATABASE_SECURITY	0x0001	/* internal behavior */
+#define GUC_HOST_SECURITY		0x0002	/* storage error behavior */
+#define GUC_NETWORK_SECURITY	0x0004	/* connection and authentication */
+#define GUC_ALL_PRIVILEGES		0x0007	/* all of the above */
+
 /*
  * bit values in "flags" of a GUC variable
  */
@@ -294,6 +302,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 bool *valueAddr,
 									 bool bootValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
@@ -307,6 +316,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int minValue,
 									int maxValue,
 									GucContext context,
+									int privileges,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
@@ -320,6 +330,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 double minValue,
 									 double maxValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
@@ -331,6 +342,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   char **valueAddr,
 									   const char *bootValue,
 									   GucContext context,
+									   int privileges,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
@@ -343,6 +355,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int bootValue,
 									 const struct config_enum_entry *options,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h
index 6b40f1eeb8..27288236ae 100644
--- a/src/include/utils/guc_tables.h
+++ b/src/include/utils/guc_tables.h
@@ -143,6 +143,7 @@ struct config_generic
 	enum config_group group;	/* to help organize variables by function */
 	const char *short_desc;		/* short desc. of this variable's purpose */
 	const char *long_desc;		/* long desc. of this variable's purpose */
+	int			privileges;		/* privileges bits, see guc.h */
 	int			flags;			/* flag bits, see guc.h */
 	/* variable fields, initialized at runtime: */
 	enum config_type vartype;	/* type of variable (set only at startup) */
diff --git a/src/pl/plperl/expected/plperl_setup.out b/src/pl/plperl/expected/plperl_setup.out
index a1a24dfb41..bab9b3db53 100644
--- a/src/pl/plperl/expected/plperl_setup.out
+++ b/src/pl/plperl/expected/plperl_setup.out
@@ -12,7 +12,7 @@ ERROR:  permission denied to create extension "plperl"
 HINT:  Must have CREATE privilege on current database to create this extension.
 CREATE EXTENSION plperlu;  -- fail
 ERROR:  permission denied to create extension "plperlu"
-HINT:  Must be superuser to create this extension.
+HINT:  Must be superuser or a member of the pg_host_security role to create this extension.
 RESET ROLE;
 DO $$
 begin
@@ -24,7 +24,7 @@ SET ROLE regress_user1;
 CREATE EXTENSION plperl;
 CREATE EXTENSION plperlu;  -- fail
 ERROR:  permission denied to create extension "plperlu"
-HINT:  Must be superuser to create this extension.
+HINT:  Must be superuser or a member of the pg_host_security role to create this extension.
 CREATE FUNCTION foo1() returns int language plperl as '1;';
 SELECT foo1();
  foo1 
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 6299adf71a..d24989b9bd 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -406,7 +406,7 @@ _PG_init(void)
 							 NULL,
 							 &plperl_use_strict,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	/*
@@ -420,7 +420,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_init,
 							   NULL,
-							   PGC_SIGHUP, 0,
+							   PGC_SIGHUP, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	/*
@@ -442,7 +442,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperl_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plperl.on_plperlu_init",
@@ -450,7 +450,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperlu_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	EmitWarningsOnPlaceholders("plperl");
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c
index 00aace2f39..737eb80eb0 100644
--- a/src/pl/plpgsql/src/pl_handler.c
+++ b/src/pl/plpgsql/src/pl_handler.c
@@ -158,7 +158,7 @@ _PG_init(void)
 							 &plpgsql_variable_conflict,
 							 PLPGSQL_RESOLVE_ERROR,
 							 variable_conflict_options,
-							 PGC_SUSET, 0,
+							 PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.print_strict_params",
@@ -166,7 +166,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_print_strict_params,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.check_asserts",
@@ -174,7 +174,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_check_asserts,
 							 true,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plpgsql.extra_warnings",
@@ -182,7 +182,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_warnings_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_ALL_PRIVILEGES, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_warnings_assign_hook,
 							   NULL);
@@ -192,7 +192,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_errors_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_ALL_PRIVILEGES, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_errors_assign_hook,
 							   NULL);
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index e11837559d..a52c101b0a 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -464,14 +464,14 @@ _PG_init(void)
 							   NULL,
 							   &pltcl_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 	DefineCustomStringVariable("pltclu.start_proc",
 							   gettext_noop("PL/TclU function to call once when pltclu is first used."),
 							   NULL,
 							   &pltclu_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	pltcl_pm_init_done = true;
diff --git a/src/test/modules/delay_execution/delay_execution.c b/src/test/modules/delay_execution/delay_execution.c
index b3d0841ba8..6e99f612fa 100644
--- a/src/test/modules/delay_execution/delay_execution.c
+++ b/src/test/modules/delay_execution/delay_execution.c
@@ -86,6 +86,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX,
 							PGC_USERSET,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
diff --git a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
index 6b0a3db104..b947247bf3 100644
--- a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
+++ b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
@@ -44,6 +44,7 @@ _PG_init(void)
 							   &ssl_passphrase,
 							   NULL,
 							   PGC_SIGHUP,
+							   GUC_ALL_PRIVILEGES,
 							   0,	/* no flags required */
 							   NULL,
 							   NULL,
diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c
index d0acef2652..0ef493ebfe 100644
--- a/src/test/modules/worker_spi/worker_spi.c
+++ b/src/test/modules/worker_spi/worker_spi.c
@@ -293,6 +293,7 @@ _PG_init(void)
 							1,
 							INT_MAX,
 							PGC_SIGHUP,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
@@ -309,6 +310,7 @@ _PG_init(void)
 							1,
 							100,
 							PGC_POSTMASTER,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
@@ -320,6 +322,7 @@ _PG_init(void)
 							   &worker_spi_database,
 							   "postgres",
 							   PGC_POSTMASTER,
+							   GUC_ALL_PRIVILEGES,
 							   0,
 							   NULL, NULL, NULL);
 
diff --git a/src/test/regress/expected/guc_priv_admin.out b/src/test/regress/expected/guc_priv_admin.out
new file mode 100644
index 0000000000..84fcb9672d
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_admin.out
@@ -0,0 +1,1823 @@
+-- Role with all GUC permissions
+CREATE ROLE admin;
+GRANT pg_database_security TO admin;
+GRANT pg_host_security TO admin;
+GRANT pg_network_security TO admin;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+RESET recovery_init_sync_method;  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY | GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = OFF;  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = OFF;  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+WARNING:  RESET TRANSACTION can only be used in transaction blocks
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/expected/guc_priv_tenant.out b/src/test/regress/expected/guc_priv_tenant.out
new file mode 100644
index 0000000000..4a8d735d0f
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_tenant.out
@@ -0,0 +1,2275 @@
+-- Role operating exclusively within the sandbox
+CREATE ROLE tenant;
+GRANT pg_database_security TO tenant;
+-- Perform all operations as user 'tenant' --
+SET SESSION AUTHORIZATION tenant;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+RESET recovery_init_sync_method;  -- fail, requires restart
+ERROR:  parameter "recovery_init_sync_method" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SIGHUP / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY | GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+SET ignore_checksum_failure = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+WARNING:  RESET TRANSACTION can only be used in transaction blocks
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+ERROR:  parameter "transaction_isolation" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, tenant has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE tenant;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 22b0d3584d..be21d96ff6 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_tenant guc_priv_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_admin.sql b/src/test/regress/sql/guc_priv_admin.sql
new file mode 100644
index 0000000000..024f845698
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_admin.sql
@@ -0,0 +1,1449 @@
+-- Role with all GUC permissions
+CREATE ROLE admin;
+GRANT pg_database_security TO admin;
+GRANT pg_host_security TO admin;
+GRANT pg_network_security TO admin;
+
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+RESET recovery_init_sync_method;  -- fail, requires restart
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY | GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = OFF;  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = OFF;  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/sql/guc_priv_tenant.sql b/src/test/regress/sql/guc_priv_tenant.sql
new file mode 100644
index 0000000000..d24e834a44
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_tenant.sql
@@ -0,0 +1,1447 @@
+-- Role operating exclusively within the sandbox
+CREATE ROLE tenant;
+GRANT pg_database_security TO tenant;
+
+-- Perform all operations as user 'tenant' --
+SET SESSION AUTHORIZATION tenant;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, tenant has insufficient privileges
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, tenant has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, tenant has insufficient privileges
+SET recovery_init_sync_method = 'fsync';  -- fail, requires restart
+RESET recovery_init_sync_method;  -- fail, requires restart
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, tenant has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, tenant has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, tenant has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, tenant has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, tenant has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, tenant has insufficient privileges
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, tenant has insufficient privileges
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, tenant has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, tenant has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, tenant has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, tenant has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, tenant has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, tenant has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, tenant has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, tenant has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, tenant has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, tenant has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, tenant has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, tenant has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, tenant has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, tenant has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, tenant has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, tenant has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, tenant has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, tenant has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, tenant has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, tenant has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, tenant has insufficient privileges
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, tenant has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, tenant has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, tenant has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, tenant has insufficient privileges
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, tenant has insufficient privileges
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, tenant has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, tenant has insufficient privileges
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, tenant has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, tenant has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, tenant has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, tenant has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, tenant has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, tenant has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, tenant has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, tenant has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, tenant has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, tenant has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, tenant has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, tenant has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, tenant has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, tenant has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, tenant has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, tenant has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, tenant has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, tenant has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, tenant has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, tenant has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, tenant has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, tenant has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, tenant has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, tenant has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, tenant has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, tenant has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, tenant has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, tenant has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, tenant has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, tenant has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, tenant has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, tenant has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, tenant has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, tenant has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, tenant has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, tenant has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, tenant has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, tenant has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, tenant has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, tenant has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, tenant has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, tenant has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, tenant has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, tenant has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, tenant has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, tenant has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY | GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, tenant has insufficient privileges
+RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, tenant has insufficient privileges
+RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, tenant has insufficient privileges
+SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, tenant has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, tenant has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, tenant has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, tenant has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, tenant has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, tenant has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, tenant has insufficient privileges
+RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, tenant has insufficient privileges
+RESET log_duration;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, tenant has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, tenant has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, tenant has insufficient privileges
+RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, tenant has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, tenant has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, tenant has insufficient privileges
+RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, tenant has insufficient privileges
+SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+RESET log_statement;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, tenant has insufficient privileges
+SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+RESET log_temp_files;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, tenant has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, tenant has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, tenant has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+RESET log_min_messages;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, tenant has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, tenant has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, tenant has insufficient privileges
+RESET update_process_title;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, tenant has insufficient privileges
+RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, tenant has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, tenant has insufficient privileges
+RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, tenant has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, tenant has insufficient privileges
+RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, tenant has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, tenant has insufficient privileges
+RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+RESET commit_delay;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, tenant has insufficient privileges
+SET wal_compression = OFF;  -- fail, tenant has insufficient privileges
+RESET wal_compression;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_compression = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, tenant has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, tenant has insufficient privileges
+RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, tenant has insufficient privileges
+SET wal_recycle = OFF;  -- fail, tenant has insufficient privileges
+RESET wal_recycle;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, tenant has insufficient privileges
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+RESET session_replication_role;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, tenant has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, tenant has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, tenant has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY | GUC_NETWORK_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, tenant has insufficient privileges
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_isolation = 'read committed';  -- ok
+RESET transaction_isolation;  -- ok
+ALTER SYSTEM SET transaction_isolation = 'read committed';  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_isolation;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, tenant has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, tenant has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, tenant has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, tenant has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, tenant has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, tenant has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, tenant has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, tenant has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, tenant has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, tenant has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, tenant has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, tenant has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, tenant has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, tenant has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, tenant has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, tenant has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, tenant has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE tenant;
-- 
2.21.1 (Apple Git-122.3)

v3-0001-Add-default-role-for-managing-logical-replication.patchapplication/octet-stream; name=v3-0001-Add-default-role-for-managing-logical-replication.patch; x-unix-mode=0644Download
From 1b5e990732387b1c40fa61490bf5c9f68fa9a3ea Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Fri, 21 May 2021 08:58:22 -0700
Subject: [PATCH v3 1/5] Add default role for managing logical replication

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_logical_replication role and
delegating to it the authority to add, alter, or drop publications
and subscriptions on any table regardless of table ownership.
---
 src/backend/catalog/objectaddress.c        |  6 ++-
 src/backend/commands/publicationcmds.c     | 27 ++++++++++----
 src/backend/commands/subscriptioncmds.c    | 26 +++++++++----
 src/include/catalog/pg_authid.dat          |  5 +++
 src/test/regress/expected/privileges.out   | 43 +++++++++++++++++++++-
 src/test/regress/expected/subscription.out |  4 +-
 src/test/regress/sql/privileges.sql        | 42 ++++++++++++++++++++-
 7 files changed, 130 insertions(+), 23 deletions(-)

diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index d79c3cde7c..2347bc2a00 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -2506,12 +2506,14 @@ check_object_ownership(Oid roleid, ObjectType objtype, ObjectAddress address,
 			}
 			break;
 		case OBJECT_PUBLICATION:
-			if (!pg_publication_ownercheck(address.objectId, roleid))
+			if (!pg_publication_ownercheck(address.objectId, roleid) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 				aclcheck_error(ACLCHECK_NOT_OWNER, objtype,
 							   strVal((Value *) object));
 			break;
 		case OBJECT_SUBSCRIPTION:
-			if (!pg_subscription_ownercheck(address.objectId, roleid))
+			if (!pg_subscription_ownercheck(address.objectId, roleid) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 				aclcheck_error(ACLCHECK_NOT_OWNER, objtype,
 							   strVal((Value *) object));
 			break;
diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c
index 95c253c8e0..681fe8adf7 100644
--- a/src/backend/commands/publicationcmds.c
+++ b/src/backend/commands/publicationcmds.c
@@ -24,6 +24,7 @@
 #include "catalog/objectaccess.h"
 #include "catalog/objectaddress.h"
 #include "catalog/partition.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_publication.h"
 #include "catalog/pg_publication_rel.h"
@@ -165,11 +166,15 @@ CreatePublication(CreatePublicationStmt *stmt)
 		aclcheck_error(aclresult, OBJECT_DATABASE,
 					   get_database_name(MyDatabaseId));
 
-	/* FOR ALL TABLES requires superuser */
-	if (stmt->for_all_tables && !superuser())
+	/*
+	 * FOR ALL TABLES requires superuser or membership in the
+	 * pg_logical_replication role
+	 */
+	if (stmt->for_all_tables && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create FOR ALL TABLES publication")));
+				 errmsg("must be superuser or a member of the pg_logical_replication role to create FOR ALL TABLES publication")));
 
 	rel = table_open(PublicationRelationId, RowExclusiveLock);
 
@@ -454,7 +459,8 @@ AlterPublication(AlterPublicationStmt *stmt)
 	pubform = (Form_pg_publication) GETSTRUCT(tup);
 
 	/* must be owner */
-	if (!pg_publication_ownercheck(pubform->oid, GetUserId()))
+	if (!pg_publication_ownercheck(pubform->oid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_PUBLICATION,
 					   stmt->pubname);
 
@@ -615,8 +621,12 @@ PublicationAddTables(Oid pubid, List *rels, bool if_not_exists,
 		Relation	rel = (Relation) lfirst(lc);
 		ObjectAddress obj;
 
-		/* Must be owner of the table or superuser. */
-		if (!pg_class_ownercheck(RelationGetRelid(rel), GetUserId()))
+		/*
+		 * Must be owner of the table or superuser or a member of the
+		 * pg_logical_replication role.
+		 */
+		if (!pg_class_ownercheck(RelationGetRelid(rel), GetUserId()) &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 			aclcheck_error(ACLCHECK_NOT_OWNER, get_relkind_objtype(rel->rd_rel->relkind),
 						   RelationGetRelationName(rel));
 
@@ -679,7 +689,8 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 	if (form->pubowner == newOwnerId)
 		return;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 	{
 		AclResult	aclresult;
 
@@ -702,7 +713,7 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("permission denied to change owner of publication \"%s\"",
 							NameStr(form->pubname)),
-					 errhint("The owner of a FOR ALL TABLES publication must be a superuser.")));
+					 errhint("The owner of a FOR ALL TABLES publication must be a superuser or a member of the pg_logical_replication role.")));
 	}
 
 	form->pubowner = newOwnerId;
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 8aa6de1785..9b1399c593 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -23,6 +23,7 @@
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
 #include "catalog/objectaddress.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_subscription.h"
 #include "catalog/pg_subscription_rel.h"
 #include "catalog/pg_type.h"
@@ -372,10 +373,11 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel)
 	if (create_slot)
 		PreventInTransactionBlock(isTopLevel, "CREATE SUBSCRIPTION ... WITH (create_slot = true)");
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create subscriptions")));
+				 errmsg("must be superuser or a member of the pg_logical_replication role to create subscriptions")));
 
 	/*
 	 * If built with appropriate switch, whine when regression-testing
@@ -779,7 +781,8 @@ AlterSubscription(AlterSubscriptionStmt *stmt, bool isTopLevel)
 	subid = form->oid;
 
 	/* must be owner */
-	if (!pg_subscription_ownercheck(subid, GetUserId()))
+	if (!pg_subscription_ownercheck(subid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   stmt->subname);
 
@@ -1096,7 +1099,8 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
 	subid = form->oid;
 
 	/* must be owner */
-	if (!pg_subscription_ownercheck(subid, GetUserId()))
+	if (!pg_subscription_ownercheck(subid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   stmt->subname);
 
@@ -1380,17 +1384,23 @@ AlterSubscriptionOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 	if (form->subowner == newOwnerId)
 		return;
 
-	if (!pg_subscription_ownercheck(form->oid, GetUserId()))
+	if (!pg_subscription_ownercheck(form->oid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   NameStr(form->subname));
 
-	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
+	/*
+	 * New owner must be a superuser or a member of the pg_logical_replication
+	 * role
+	 */
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_LOGICAL_REPLICATION))
+
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of subscription \"%s\"",
 						NameStr(form->subname)),
-				 errhint("The owner of a subscription must be a superuser.")));
+				 errhint("The owner of a subscription must be a superuser or a member of the pg_logical_replication role.")));
 
 	form->subowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 3da68016b6..0048a5fab7 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -79,5 +79,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9276', oid_symbol => 'ROLE_PG_LOGICAL_REPLICATION',
+  rolname => 'pg_logical_replication', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 83cff902f3..2a2754266f 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -13,6 +13,7 @@ DROP ROLE IF EXISTS regress_priv_user4;
 DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
+DROP ROLE IF EXISTS regress_priv_user8;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -29,6 +30,7 @@ CREATE USER regress_priv_user5;	-- duplicate
 ERROR:  role "regress_priv_user5" already exists
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
+CREATE USER regress_priv_user8;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1829,6 +1831,42 @@ TABLE information_schema.enabled_roles;
 INSERT INTO datdba_only DEFAULT VALUES;
 ERROR:  permission denied for table datdba_only
 ROLLBACK;
+-- test pg_logical_replication
+\c -
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION owner_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false);
+CREATE PUBLICATION owner_publication FOR TABLE datdba_only;
+RESET client_min_messages;
+GRANT pg_logical_replication TO regress_priv_user8;
+GRANT CREATE ON DATABASE regression TO regress_priv_user8;
+SET SESSION AUTHORIZATION regress_priv_user8;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user8_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false);
+CREATE PUBLICATION user8_publication FOR TABLE datdba_only;
+RESET client_min_messages;
+ALTER PUBLICATION user8_publication ADD TABLE atest1;
+ALTER PUBLICATION user8_publication SET (publish = 'insert, delete');
+ALTER PUBLICATION user8_publication DROP TABLE datdba_only;
+DROP PUBLICATION user8_publication;
+ALTER SUBSCRIPTION user8_subscription SET PUBLICATION nosuchpub WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION user8_subscription ADD PUBLICATION nosuchpub2 WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION user8_subscription DROP PUBLICATION nosuchpub2 WITH (refresh = false);
+DROP SUBSCRIPTION user8_subscription;
+ALTER SUBSCRIPTION owner_subscription SET PUBLICATION nosuchpub WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION owner_subscription ADD PUBLICATION nosuchpub2 WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION owner_subscription OWNER TO regress_priv_user8;
+ALTER SUBSCRIPTION owner_subscription OWNER TO regress_priv_user8;
+ALTER SUBSCRIPTION owner_subscription DROP PUBLICATION nosuchpub2 WITH (refresh = false);
+DROP SUBSCRIPTION owner_subscription;
+ALTER PUBLICATION owner_publication ADD TABLE atest1;
+ALTER PUBLICATION owner_publication DROP TABLE datdba_only;
+ALTER PUBLICATION owner_publication SET TABLE atest2;
+ALTER PUBLICATION owner_publication SET (publish = 'insert, update, delete');
+ALTER PUBLICATION owner_publication OWNER TO regress_priv_user8;
+DROP PUBLICATION owner_publication;
+RESET SESSION AUTHORIZATION;
+REVOKE pg_logical_replication FROM regress_priv_user8;
+REVOKE CREATE ON DATABASE regression FROM regress_priv_user8;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2328,8 +2366,9 @@ DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
-DROP USER regress_priv_user8; -- does not exist
-ERROR:  role "regress_priv_user8" does not exist
+DROP USER regress_priv_user8;
+DROP USER regress_priv_user9; -- does not exist
+ERROR:  role "regress_priv_user9" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index 09576c176b..18954a316e 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -43,7 +43,7 @@ ERROR:  subscription "regress_testsub" already exists
 -- fail - must be superuser
 SET SESSION AUTHORIZATION 'regress_subscription_user2';
 CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION foo WITH (connect = false);
-ERROR:  must be superuser to create subscriptions
+ERROR:  must be superuser or a member of the pg_logical_replication role to create subscriptions
 SET SESSION AUTHORIZATION 'regress_subscription_user';
 -- fail - invalid option combinations
 CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, copy_data = true);
@@ -137,7 +137,7 @@ ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
 -- fail - new owner must be superuser
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
 ERROR:  permission denied to change owner of subscription "regress_testsub"
-HINT:  The owner of a subscription must be a superuser.
+HINT:  The owner of a subscription must be a superuser or a member of the pg_logical_replication role.
 ALTER ROLE regress_subscription_user2 SUPERUSER;
 -- now it works
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 3d1a1db987..cae248391c 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -17,6 +17,7 @@ DROP ROLE IF EXISTS regress_priv_user4;
 DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
+DROP ROLE IF EXISTS regress_priv_user8;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -32,6 +33,7 @@ CREATE USER regress_priv_user5;
 CREATE USER regress_priv_user5;	-- duplicate
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
+CREATE USER regress_priv_user8;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1092,6 +1094,43 @@ TABLE information_schema.enabled_roles;
 INSERT INTO datdba_only DEFAULT VALUES;
 ROLLBACK;
 
+-- test pg_logical_replication
+\c -
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION owner_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false);
+CREATE PUBLICATION owner_publication FOR TABLE datdba_only;
+RESET client_min_messages;
+GRANT pg_logical_replication TO regress_priv_user8;
+GRANT CREATE ON DATABASE regression TO regress_priv_user8;
+SET SESSION AUTHORIZATION regress_priv_user8;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user8_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false);
+CREATE PUBLICATION user8_publication FOR TABLE datdba_only;
+RESET client_min_messages;
+ALTER PUBLICATION user8_publication ADD TABLE atest1;
+ALTER PUBLICATION user8_publication SET (publish = 'insert, delete');
+ALTER PUBLICATION user8_publication DROP TABLE datdba_only;
+DROP PUBLICATION user8_publication;
+ALTER SUBSCRIPTION user8_subscription SET PUBLICATION nosuchpub WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION user8_subscription ADD PUBLICATION nosuchpub2 WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION user8_subscription DROP PUBLICATION nosuchpub2 WITH (refresh = false);
+DROP SUBSCRIPTION user8_subscription;
+ALTER SUBSCRIPTION owner_subscription SET PUBLICATION nosuchpub WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION owner_subscription ADD PUBLICATION nosuchpub2 WITH (copy_data = false, refresh = false);
+ALTER SUBSCRIPTION owner_subscription OWNER TO regress_priv_user8;
+ALTER SUBSCRIPTION owner_subscription OWNER TO regress_priv_user8;
+ALTER SUBSCRIPTION owner_subscription DROP PUBLICATION nosuchpub2 WITH (refresh = false);
+DROP SUBSCRIPTION owner_subscription;
+ALTER PUBLICATION owner_publication ADD TABLE atest1;
+ALTER PUBLICATION owner_publication DROP TABLE datdba_only;
+ALTER PUBLICATION owner_publication SET TABLE atest2;
+ALTER PUBLICATION owner_publication SET (publish = 'insert, update, delete');
+ALTER PUBLICATION owner_publication OWNER TO regress_priv_user8;
+DROP PUBLICATION owner_publication;
+RESET SESSION AUTHORIZATION;
+REVOKE pg_logical_replication FROM regress_priv_user8;
+REVOKE CREATE ON DATABASE regression FROM regress_priv_user8;
+
 -- test default ACLs
 \c -
 
@@ -1391,7 +1430,8 @@ DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
-DROP USER regress_priv_user8; -- does not exist
+DROP USER regress_priv_user8;
+DROP USER regress_priv_user9; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

v3-0002-Add-default-role-for-operations-implicating-host-.patchapplication/octet-stream; name=v3-0002-Add-default-role-for-operations-implicating-host-.patch; x-unix-mode=0644Download
From a3e7f56a2c7e6c3ba997fbb9e3b40e3121a71e68 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Fri, 21 May 2021 14:21:43 -0700
Subject: [PATCH v3 2/5] Add default role for operations implicating host
 security

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_host_security role and
delegating to it the authority to load extensions, and to create,
alter, and drop event triggers and tablespaces.
---
 src/backend/catalog/aclchk.c                | 19 +++++++++++-----
 src/backend/commands/event_trigger.c        | 11 +++++----
 src/backend/commands/extension.c            |  7 +++---
 src/backend/commands/tablespace.c           |  8 ++++---
 src/backend/tcop/utility.c                  |  4 +++-
 src/include/catalog/pg_authid.dat           |  5 +++++
 src/test/regress/expected/event_trigger.out |  4 ++--
 src/test/regress/expected/privileges.out    | 25 +++++++++++++++++++--
 src/test/regress/input/tablespace.source    | 10 +++++++++
 src/test/regress/output/tablespace.source   |  9 ++++++++
 src/test/regress/sql/privileges.sql         | 24 +++++++++++++++++++-
 11 files changed, 105 insertions(+), 21 deletions(-)

diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 53392414f1..50bafae58e 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -4299,8 +4299,12 @@ pg_tablespace_aclmask(Oid spc_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_host_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
 		return mask;
 
 	/*
@@ -5027,8 +5031,12 @@ pg_tablespace_ownercheck(Oid spc_oid, Oid roleid)
 	HeapTuple	spctuple;
 	Oid			spcowner;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_host_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
 		return true;
 
 	/* Search syscache for pg_tablespace */
@@ -5217,7 +5225,8 @@ pg_event_trigger_ownercheck(Oid et_oid, Oid roleid)
 	Oid			ownerId;
 
 	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(EVENTTRIGGEROID, ObjectIdGetDatum(et_oid));
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 5bde507c75..d2132cf757 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -20,6 +20,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_event_trigger.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
@@ -119,12 +120,13 @@ CreateEventTrigger(CreateEventTrigStmt *stmt)
 	 * this, but there are obvious privilege escalation risks which would have
 	 * to somehow be plugged first.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create event trigger \"%s\"",
 						stmt->trigname),
-				 errhint("Must be superuser to create an event trigger.")));
+				 errhint("Must be superuser or a member of the pg_host_security role to create an event trigger.")));
 
 	/* Validate event name. */
 	if (strcmp(stmt->eventname, "ddl_command_start") != 0 &&
@@ -477,12 +479,13 @@ AlterEventTriggerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					   NameStr(form->evtname));
 
 	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of event trigger \"%s\"",
 						NameStr(form->evtname)),
-				 errhint("The owner of an event trigger must be a superuser.")));
+				 errhint("The owner of an event trigger must be a superuser or a member of the pg_host_security role.")));
 
 	form->evtowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 008505368c..58ca8c5f81 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -851,7 +851,8 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 	 * here so that the control flags are correctly associated with the right
 	 * script(s) if they happen to be set in secondary control files.
 	 */
-	if (control->superuser && !superuser())
+	if (control->superuser && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 	{
 		if (extension_is_trusted(control))
 			switch_to_superuser = true;
@@ -862,7 +863,7 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 							control->name),
 					 control->trusted
 					 ? errhint("Must have CREATE privilege on current database to create this extension.")
-					 : errhint("Must be superuser to create this extension.")));
+					 : errhint("Must be superuser or a member of the pg_host_security role to create this extension.")));
 		else
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -870,7 +871,7 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 							control->name),
 					 control->trusted
 					 ? errhint("Must have CREATE privilege on current database to update this extension.")
-					 : errhint("Must be superuser to update this extension.")));
+					 : errhint("Must be superuser or a member of the pg_host_security role to update this extension.")));
 	}
 
 	filename = get_extension_script_filename(control, from_version, version);
diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index 69ea155d50..c8720664b6 100644
--- a/src/backend/commands/tablespace.c
+++ b/src/backend/commands/tablespace.c
@@ -63,6 +63,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_tablespace.h"
 #include "commands/comment.h"
@@ -242,13 +243,14 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
 	Oid			ownerId;
 	Datum		newOptions;
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_host_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create tablespace \"%s\"",
 						stmt->tablespacename),
-				 errhint("Must be superuser to create a tablespace.")));
+				 errhint("Must be superuser or a member of the pg_host_security role to create a tablespace.")));
 
 	/* However, the eventual owner of the tablespace need not be */
 	if (stmt->owner)
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 1a8fc16773..2d888e5d40 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -24,6 +24,7 @@
 #include "catalog/catalog.h"
 #include "catalog/index.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/toasting.h"
 #include "commands/alter.h"
@@ -810,7 +811,8 @@ standard_ProcessUtility(PlannedStmt *pstmt,
 
 				closeAllVfds(); /* probably not necessary... */
 				/* Allowed names are restricted if you're not superuser */
-				load_file(stmt->filename, !superuser());
+				load_file(stmt->filename, !superuser() &&
+						  !has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY));
 			}
 			break;
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 0048a5fab7..33d5b637a1 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -84,5 +84,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9277', oid_symbol => 'ROLE_PG_HOST_SECURITY',
+  rolname => 'pg_host_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index 369f3d7d84..25a63b432f 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -90,7 +90,7 @@ set role regress_evt_user;
 create event trigger regress_event_trigger_noperms on ddl_command_start
    execute procedure test_event_trigger();
 ERROR:  permission denied to create event trigger "regress_event_trigger_noperms"
-HINT:  Must be superuser to create an event trigger.
+HINT:  Must be superuser or a member of the pg_host_security role to create an event trigger.
 reset role;
 -- test enabling and disabling
 alter event trigger regress_event_trigger disable;
@@ -176,7 +176,7 @@ NOTICE:  test_event_trigger: ddl_command_end ALTER DEFAULT PRIVILEGES
 -- alter owner to non-superuser should fail
 alter event trigger regress_event_trigger owner to regress_evt_user;
 ERROR:  permission denied to change owner of event trigger "regress_event_trigger"
-HINT:  The owner of an event trigger must be a superuser.
+HINT:  The owner of an event trigger must be a superuser or a member of the pg_host_security role.
 -- alter owner to superuser should work
 alter role regress_evt_user superuser;
 alter event trigger regress_event_trigger owner to regress_evt_user;
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 2a2754266f..d6112221da 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -14,6 +14,7 @@ DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
+DROP ROLE IF EXISTS regress_priv_user9;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -31,6 +32,7 @@ ERROR:  role "regress_priv_user5" already exists
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
+CREATE USER regress_priv_user9;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1867,6 +1869,24 @@ DROP PUBLICATION owner_publication;
 RESET SESSION AUTHORIZATION;
 REVOKE pg_logical_replication FROM regress_priv_user8;
 REVOKE CREATE ON DATABASE regression FROM regress_priv_user8;
+-- test pg_host_security authority to create event triggers
+GRANT pg_host_security TO regress_priv_user9;
+SET SESSION AUTHORIZATION regress_priv_user9;
+CREATE FUNCTION user9_event_trigger() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user9_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user9_event_trigger_start ON ddl_command_start
+   EXECUTE PROCEDURE user9_event_trigger();
+CREATE EVENT TRIGGER user9_event_trigger_end ON ddl_command_end
+   EXECUTE FUNCTION user9_event_trigger();
+COMMENT ON EVENT TRIGGER user9_event_trigger_start IS 'test comment';
+ALTER EVENT TRIGGER user9_event_trigger_end RENAME TO user9_event_trigger_finish;
+DROP EVENT TRIGGER user9_event_trigger_start;
+DROP EVENT TRIGGER user9_event_trigger_finish;
+DROP FUNCTION user9_event_trigger;
+RESET SESSION AUTHORIZATION;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2367,8 +2387,9 @@ DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
-DROP USER regress_priv_user9; -- does not exist
-ERROR:  role "regress_priv_user9" does not exist
+DROP USER regress_priv_user9;
+DROP USER regress_priv_none; -- does not exist
+ERROR:  role "regress_priv_none" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/input/tablespace.source b/src/test/regress/input/tablespace.source
index c133e73499..a46cb7fcbf 100644
--- a/src/test/regress/input/tablespace.source
+++ b/src/test/regress/input/tablespace.source
@@ -405,6 +405,16 @@ ALTER TABLE ALL IN TABLESPACE regress_tblspace_renamed SET TABLESPACE pg_default
 -- Should succeed
 DROP TABLESPACE regress_tblspace_renamed;
 
+-- Role pg_host_security should be able to create, alter, and drop tablespaces
+CREATE USER tablespace_admin;
+GRANT pg_host_security TO tablespace_admin;
+SET SESSION AUTHORIZATION tablespace_admin;
+CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@'; -- ok
+ALTER TABLESPACE regress_tblspace RENAME TO regress_tblspace_renamed;
+ALTER TABLESPACE regress_tblspace_renamed SET (random_page_cost = 1.0, seq_page_cost = 1.1);
+DROP TABLESPACE regress_tblspace_renamed;
+RESET SESSION AUTHORIZATION;
+
 DROP SCHEMA testschema CASCADE;
 
 DROP ROLE regress_tablespace_user1;
diff --git a/src/test/regress/output/tablespace.source b/src/test/regress/output/tablespace.source
index 1bbe7e0323..03367118f0 100644
--- a/src/test/regress/output/tablespace.source
+++ b/src/test/regress/output/tablespace.source
@@ -924,6 +924,15 @@ ALTER TABLE ALL IN TABLESPACE regress_tblspace_renamed SET TABLESPACE pg_default
 NOTICE:  no matching relations in tablespace "regress_tblspace_renamed" found
 -- Should succeed
 DROP TABLESPACE regress_tblspace_renamed;
+-- Role pg_host_security should be able to create, alter, and drop tablespaces
+CREATE USER tablespace_admin;
+GRANT pg_host_security TO tablespace_admin;
+SET SESSION AUTHORIZATION tablespace_admin;
+CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@'; -- ok
+ALTER TABLESPACE regress_tblspace RENAME TO regress_tblspace_renamed;
+ALTER TABLESPACE regress_tblspace_renamed SET (random_page_cost = 1.0, seq_page_cost = 1.1);
+DROP TABLESPACE regress_tblspace_renamed;
+RESET SESSION AUTHORIZATION;
 DROP SCHEMA testschema CASCADE;
 NOTICE:  drop cascades to 6 other objects
 DETAIL:  drop cascades to table testschema.foo
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index cae248391c..35214ceb57 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -18,6 +18,7 @@ DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
+DROP ROLE IF EXISTS regress_priv_user9;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -34,6 +35,7 @@ CREATE USER regress_priv_user5;	-- duplicate
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
+CREATE USER regress_priv_user9;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1131,6 +1133,25 @@ RESET SESSION AUTHORIZATION;
 REVOKE pg_logical_replication FROM regress_priv_user8;
 REVOKE CREATE ON DATABASE regression FROM regress_priv_user8;
 
+-- test pg_host_security authority to create event triggers
+GRANT pg_host_security TO regress_priv_user9;
+SET SESSION AUTHORIZATION regress_priv_user9;
+CREATE FUNCTION user9_event_trigger() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user9_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user9_event_trigger_start ON ddl_command_start
+   EXECUTE PROCEDURE user9_event_trigger();
+CREATE EVENT TRIGGER user9_event_trigger_end ON ddl_command_end
+   EXECUTE FUNCTION user9_event_trigger();
+COMMENT ON EVENT TRIGGER user9_event_trigger_start IS 'test comment';
+ALTER EVENT TRIGGER user9_event_trigger_end RENAME TO user9_event_trigger_finish;
+DROP EVENT TRIGGER user9_event_trigger_start;
+DROP EVENT TRIGGER user9_event_trigger_finish;
+DROP FUNCTION user9_event_trigger;
+RESET SESSION AUTHORIZATION;
+
 -- test default ACLs
 \c -
 
@@ -1431,7 +1452,8 @@ DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
-DROP USER regress_priv_user9; -- does not exist
+DROP USER regress_priv_user9;
+DROP USER regress_priv_none; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

v3-0003-Add-default-role-for-operations-implicating-netwo.patchapplication/octet-stream; name=v3-0003-Add-default-role-for-operations-implicating-netwo.patch; x-unix-mode=0644Download
From 686ab950440840c2a139113ed1000e6bd3145ddf Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 18 May 2021 14:37:35 -0700
Subject: [PATCH v3 3/5] Add default role for operations implicating network
 security

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_network_security role and
delegating to it the authority to create, alter and drop foreign
servers and foreign data wrappers.
---
 contrib/dblink/dblink.c                    | 11 ++++--
 contrib/postgres_fdw/option.c              | 16 +++++---
 src/backend/catalog/aclchk.c               | 45 ++++++++++++++++------
 src/backend/commands/foreigncmds.c         | 40 ++++++++++++-------
 src/include/catalog/pg_authid.dat          |  5 +++
 src/test/regress/expected/foreign_data.out | 18 ++++-----
 src/test/regress/expected/privileges.out   | 14 +++++++
 src/test/regress/sql/privileges.sql        | 15 ++++++++
 8 files changed, 119 insertions(+), 45 deletions(-)

diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 3a0beaa88e..219503a6a0 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -39,6 +39,7 @@
 #include "access/reloptions.h"
 #include "access/table.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_foreign_data_wrapper.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_type.h"
@@ -2666,7 +2667,8 @@ deleteConnection(const char *name)
 static void
 dblink_security_check(PGconn *conn, remoteConn *rconn)
 {
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 	{
 		if (!PQconnectionUsedPassword(conn))
 		{
@@ -2678,7 +2680,7 @@ dblink_security_check(PGconn *conn, remoteConn *rconn)
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superuser cannot connect if the server does not request a password."),
+					 errdetail("Non-superuser other than pg_network_security cannot connect if the server does not request a password."),
 					 errhint("Target server's authentication method must be changed.")));
 		}
 	}
@@ -2693,7 +2695,8 @@ dblink_security_check(PGconn *conn, remoteConn *rconn)
 static void
 dblink_connstr_check(const char *connstr)
 {
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 	{
 		PQconninfoOption *options;
 		PQconninfoOption *option;
@@ -2720,7 +2723,7 @@ dblink_connstr_check(const char *connstr)
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superusers must provide a password in the connection string.")));
+					 errdetail("Non-superusers other than pg_network_security must provide a password in the connection string.")));
 	}
 }
 
diff --git a/contrib/postgres_fdw/option.c b/contrib/postgres_fdw/option.c
index 672b55a808..825c37463b 100644
--- a/contrib/postgres_fdw/option.c
+++ b/contrib/postgres_fdw/option.c
@@ -13,12 +13,14 @@
 #include "postgres.h"
 
 #include "access/reloptions.h"
+#include "catalog/pg_authid_d.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_foreign_table.h"
 #include "catalog/pg_user_mapping.h"
 #include "commands/defrem.h"
 #include "commands/extension.h"
 #include "postgres_fdw.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/varlena.h"
 
@@ -167,21 +169,23 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
 			 * a choice since we can't see the old mapping when validating an
 			 * alter.
 			 */
-			if (!superuser() && !pw_required)
+			if (!superuser() && !pw_required &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-						 errmsg("password_required=false is superuser-only"),
-						 errhint("User mappings with the password_required option set to false may only be created or modified by the superuser")));
+						 errmsg("password_required=false requires superuser or pg_network_security privilege"),
+						 errhint("User mappings with the password_required option set to false may only be created or modified by the superuser or pg_network_security")));
 		}
 		else if (strcmp(def->defname, "sslcert") == 0 ||
 				 strcmp(def->defname, "sslkey") == 0)
 		{
 			/* similarly for sslcert / sslkey on user mapping */
-			if (catalog == UserMappingRelationId && !superuser())
+			if (catalog == UserMappingRelationId && !superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-						 errmsg("sslcert and sslkey are superuser-only"),
-						 errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser")));
+						 errmsg("sslcert and sslkey require superuser or pg_network_security privilege"),
+						 errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser or pg_network_security")));
 		}
 	}
 
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 50bafae58e..1316a6e36c 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -4362,8 +4362,9 @@ pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid,
 
 	Form_pg_foreign_data_wrapper fdwForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/* Bypass permission checks for superusers and pg_network_security */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return mask;
 
 	/*
@@ -4424,8 +4425,12 @@ pg_foreign_server_aclmask(Oid srv_oid, Oid roleid,
 
 	Form_pg_foreign_server srvForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/*
+	 * Bypass permission checks for superusers and members of the
+	 * pg_network_security role
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return mask;
 
 	/*
@@ -5170,8 +5175,12 @@ pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(FOREIGNDATAWRAPPEROID, ObjectIdGetDatum(srv_oid));
@@ -5197,8 +5206,12 @@ pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(FOREIGNSERVEROID, ObjectIdGetDatum(srv_oid));
@@ -5372,8 +5385,12 @@ pg_publication_ownercheck(Oid pub_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(PUBLICATIONOID, ObjectIdGetDatum(pub_oid));
@@ -5398,8 +5415,12 @@ pg_subscription_ownercheck(Oid sub_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(SUBSCRIPTIONOID, ObjectIdGetDatum(sub_oid));
diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c
index eb7103fd3b..309143de0d 100644
--- a/src/backend/commands/foreigncmds.c
+++ b/src/backend/commands/foreigncmds.c
@@ -21,6 +21,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid_d.h"
 #include "catalog/pg_foreign_data_wrapper.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_foreign_table.h"
@@ -214,21 +215,29 @@ AlterForeignDataWrapperOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerI
 
 	form = (Form_pg_foreign_data_wrapper) GETSTRUCT(tup);
 
-	/* Must be a superuser to change a FDW owner */
-	if (!superuser())
+	/*
+	 * Must be a superuser or a member of the pg_network_security role to
+	 * change a FDW owner
+	 */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of foreign-data wrapper \"%s\"",
 						NameStr(form->fdwname)),
-				 errhint("Must be superuser to change owner of a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security role to change owner of a foreign-data wrapper.")));
 
-	/* New owner must also be a superuser */
-	if (!superuser_arg(newOwnerId))
+	/*
+	 * New owner must also be a superuser or a member of the
+	 * pg_network_security role
+	 */
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of foreign-data wrapper \"%s\"",
 						NameStr(form->fdwname)),
-				 errhint("The owner of a foreign-data wrapper must be a superuser.")));
+				 errhint("The owner of a foreign-data wrapper must be a superuser or member of pg_network_security role.")));
 
 	if (form->fdwowner != newOwnerId)
 	{
@@ -357,8 +366,9 @@ AlterForeignServerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 
 			srvId = form->oid;
 
-			/* Must be owner */
-			if (!pg_foreign_server_ownercheck(srvId, GetUserId()))
+			/* Must be owner or a member of the pg_network_security role */
+			if (!pg_foreign_server_ownercheck(srvId, GetUserId()) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_FOREIGN_SERVER,
 							   NameStr(form->srvname));
 
@@ -577,13 +587,14 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
 
 	rel = table_open(ForeignDataWrapperRelationId, RowExclusiveLock);
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_network_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create foreign-data wrapper \"%s\"",
 						stmt->fdwname),
-				 errhint("Must be superuser to create a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security to create a foreign-data wrapper.")));
 
 	/* For now the owner cannot be specified on create. Use effective user ID. */
 	ownerId = GetUserId();
@@ -694,13 +705,14 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt)
 
 	rel = table_open(ForeignDataWrapperRelationId, RowExclusiveLock);
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_network_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to alter foreign-data wrapper \"%s\"",
 						stmt->fdwname),
-				 errhint("Must be superuser to alter a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security to alter a foreign-data wrapper.")));
 
 	tp = SearchSysCacheCopy1(FOREIGNDATAWRAPPERNAME,
 							 CStringGetDatum(stmt->fdwname));
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 33d5b637a1..6fff059699 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -89,5 +89,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9278', oid_symbol => 'ROLE_PG_NETWORK_SECURITY',
+  rolname => 'pg_network_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/foreign_data.out b/src/test/regress/expected/foreign_data.out
index 5385f98a0f..a4f7ee9af4 100644
--- a/src/test/regress/expected/foreign_data.out
+++ b/src/test/regress/expected/foreign_data.out
@@ -77,7 +77,7 @@ DROP FOREIGN DATA WRAPPER foo;
 SET ROLE regress_test_role;
 CREATE FOREIGN DATA WRAPPER foo; -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foo"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 RESET ROLE;
 CREATE FOREIGN DATA WRAPPER foo VALIDATOR postgresql_fdw_validator;
 \dew+
@@ -154,7 +154,7 @@ ERROR:  option "b" provided more than once
 SET ROLE regress_test_role;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 SET ROLE regress_test_role_super;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
 \dew+
@@ -168,13 +168,13 @@ ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
 
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role;  -- ERROR
 ERROR:  permission denied to change owner of foreign-data wrapper "foo"
-HINT:  The owner of a foreign-data wrapper must be a superuser.
+HINT:  The owner of a foreign-data wrapper must be a superuser or member of pg_network_security role.
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role_super;
 ALTER ROLE regress_test_role_super NOSUPERUSER;
 SET ROLE regress_test_role_super;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD e '6');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 RESET ROLE;
 \dew+
                                                         List of foreign-data wrappers
@@ -1185,13 +1185,13 @@ WARNING:  changing the foreign-data wrapper validator can cause the options for
 SET ROLE regress_unprivileged_role;
 CREATE FOREIGN DATA WRAPPER foobar;                             -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foobar"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (gotcha 'true');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_unprivileged_role; -- ERROR
 ERROR:  permission denied to change owner of foreign-data wrapper "foo"
-HINT:  Must be superuser to change owner of a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security role to change owner of a foreign-data wrapper.
 DROP FOREIGN DATA WRAPPER foo;                                  -- ERROR
 ERROR:  must be owner of foreign-data wrapper foo
 GRANT USAGE ON FOREIGN DATA WRAPPER foo TO regress_test_role;   -- ERROR
@@ -1218,10 +1218,10 @@ GRANT USAGE ON FOREIGN DATA WRAPPER foo TO regress_unprivileged_role WITH GRANT
 SET ROLE regress_unprivileged_role;
 CREATE FOREIGN DATA WRAPPER foobar;                             -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foobar"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (gotcha 'true');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 DROP FOREIGN DATA WRAPPER foo;                                  -- ERROR
 ERROR:  must be owner of foreign-data wrapper foo
 GRANT USAGE ON FOREIGN DATA WRAPPER postgresql TO regress_test_role; -- WARNING
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index d6112221da..b9aac3d6d4 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -15,6 +15,7 @@ DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
+DROP ROLE IF EXISTS regress_priv_user10;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -33,6 +34,7 @@ CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
+CREATE USER regress_priv_user10;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1887,6 +1889,17 @@ DROP EVENT TRIGGER user9_event_trigger_start;
 DROP EVENT TRIGGER user9_event_trigger_finish;
 DROP FUNCTION user9_event_trigger;
 RESET SESSION AUTHORIZATION;
+-- test pg_network_security authority to create foreign servers
+-- and foreign data wrappers
+GRANT pg_network_security TO regress_priv_user10;
+SET SESSION AUTHORIZATION regress_priv_user10;
+CREATE FOREIGN DATA WRAPPER user10_fdw VALIDATOR postgresql_fdw_validator;
+COMMENT ON FOREIGN DATA WRAPPER user10_fdw IS 'test comment';
+CREATE SERVER user10_server FOREIGN DATA WRAPPER user10_fdw;
+COMMENT ON SERVER user10_server IS 'test comment';
+DROP SERVER user10_server;
+DROP FOREIGN DATA WRAPPER user10_fdw;
+RESET SESSION AUTHORIZATION;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2388,6 +2401,7 @@ DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
+DROP USER regress_priv_user10;
 DROP USER regress_priv_none; -- does not exist
 ERROR:  role "regress_priv_none" does not exist
 -- permissions with LOCK TABLE
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 35214ceb57..95d1f93512 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -19,6 +19,7 @@ DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
+DROP ROLE IF EXISTS regress_priv_user10;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -36,6 +37,7 @@ CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
+CREATE USER regress_priv_user10;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1152,6 +1154,18 @@ DROP EVENT TRIGGER user9_event_trigger_finish;
 DROP FUNCTION user9_event_trigger;
 RESET SESSION AUTHORIZATION;
 
+-- test pg_network_security authority to create foreign servers
+-- and foreign data wrappers
+GRANT pg_network_security TO regress_priv_user10;
+SET SESSION AUTHORIZATION regress_priv_user10;
+CREATE FOREIGN DATA WRAPPER user10_fdw VALIDATOR postgresql_fdw_validator;
+COMMENT ON FOREIGN DATA WRAPPER user10_fdw IS 'test comment';
+CREATE SERVER user10_server FOREIGN DATA WRAPPER user10_fdw;
+COMMENT ON SERVER user10_server IS 'test comment';
+DROP SERVER user10_server;
+DROP FOREIGN DATA WRAPPER user10_fdw;
+RESET SESSION AUTHORIZATION;
+
 -- test default ACLs
 \c -
 
@@ -1453,6 +1467,7 @@ DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
+DROP USER regress_priv_user10;
 DROP USER regress_priv_none; -- does not exist
 
 
-- 
2.21.1 (Apple Git-122.3)

v3-0004-Add-default-role-for-operations-implicating-datab.patchapplication/octet-stream; name=v3-0004-Add-default-role-for-operations-implicating-datab.patch; x-unix-mode=0644Download
From 49f274b35e9fca7f3f8d04267bee7699bde52bd3 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Mon, 24 May 2021 14:16:55 -0700
Subject: [PATCH v3 4/5] Add default role for operations implicating database
 security

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_database_security role and
delegating to it the authority to create, alter and drop most
database interal objects, though not if doing so would have network
or host security implications.
---
 src/backend/catalog/aclchk.c                  | 174 +++++++++++++-----
 src/backend/catalog/objectaddress.c           |   3 +-
 src/backend/catalog/pg_proc.c                 |  10 +-
 src/backend/commands/aggregatecmds.c          |   9 +-
 src/backend/commands/alter.c                  |  14 +-
 src/backend/commands/amcmds.c                 |   7 +-
 src/backend/commands/collationcmds.c          |   6 +-
 src/backend/commands/dbcommands.c             |  11 +-
 src/backend/commands/functioncmds.c           |  27 ++-
 src/backend/commands/opclasscmds.c            |  16 +-
 src/backend/commands/proclang.c               |   6 +-
 src/backend/commands/tablecmds.c              |   4 +-
 src/backend/commands/trigger.c                |   4 +-
 src/backend/commands/tsearchcmds.c            |  11 +-
 src/backend/commands/typecmds.c               |  11 +-
 src/backend/commands/user.c                   |   9 +-
 src/include/catalog/pg_authid.dat             |   5 +
 src/test/regress/expected/alter_generic.out   |   2 +-
 .../regress/expected/create_function_3.out    |   4 +-
 src/test/regress/expected/privileges.out      |  98 ++++++++++
 src/test/regress/sql/privileges.sql           |  92 +++++++++
 21 files changed, 429 insertions(+), 94 deletions(-)

diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 1316a6e36c..8c43a69c6e 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -3882,9 +3882,11 @@ pg_class_aclmask_ext(Oid table_oid, Oid roleid, AclMode mask,
 		mask &= ~(ACL_INSERT | ACL_UPDATE | ACL_DELETE | ACL_TRUNCATE | ACL_USAGE);
 
 	/*
-	 * Otherwise, superusers bypass all permission-checking.
+	 * Otherwise, superusers and members of the pg_database_security role bypass all
+	 * permission-checking.
 	 */
-	if (superuser_arg(roleid))
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 	{
 		ReleaseSysCache(tuple);
 		return mask;
@@ -3963,8 +3965,12 @@ pg_database_aclmask(Oid db_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4017,8 +4023,12 @@ pg_proc_aclmask(Oid proc_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4071,8 +4081,12 @@ pg_language_aclmask(Oid lang_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4138,8 +4152,12 @@ pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4207,8 +4225,12 @@ pg_namespace_aclmask(Oid nsp_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4489,8 +4511,12 @@ pg_type_aclmask(Oid type_oid, Oid roleid, AclMode mask, AclMaskHow how)
 
 	Form_pg_type typeForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/*
+	 * Bypass permission checks for superusers and members of the
+	 * pg_database_security role
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4834,8 +4860,12 @@ pg_class_ownercheck(Oid class_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(class_oid));
@@ -4860,8 +4890,12 @@ pg_type_ownercheck(Oid type_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(type_oid));
@@ -4886,8 +4920,12 @@ pg_oper_ownercheck(Oid oper_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(OPEROID, ObjectIdGetDatum(oper_oid));
@@ -4912,8 +4950,12 @@ pg_proc_ownercheck(Oid proc_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(proc_oid));
@@ -4938,8 +4980,12 @@ pg_language_ownercheck(Oid lan_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(LANGOID, ObjectIdGetDatum(lan_oid));
@@ -4970,8 +5016,12 @@ pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	/* There's no syscache for pg_largeobject_metadata */
@@ -5010,8 +5060,12 @@ pg_namespace_ownercheck(Oid nsp_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(NAMESPACEOID, ObjectIdGetDatum(nsp_oid));
@@ -5067,8 +5121,12 @@ pg_opclass_ownercheck(Oid opc_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(CLAOID, ObjectIdGetDatum(opc_oid));
@@ -5094,8 +5152,12 @@ pg_opfamily_ownercheck(Oid opf_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(OPFAMILYOID, ObjectIdGetDatum(opf_oid));
@@ -5121,8 +5183,12 @@ pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TSDICTOID, ObjectIdGetDatum(dict_oid));
@@ -5148,8 +5214,12 @@ pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TSCONFIGOID, ObjectIdGetDatum(cfg_oid));
@@ -5265,8 +5335,12 @@ pg_database_ownercheck(Oid db_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			dba;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(DATABASEOID, ObjectIdGetDatum(db_oid));
@@ -5291,8 +5365,12 @@ pg_collation_ownercheck(Oid coll_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(COLLOID, ObjectIdGetDatum(coll_oid));
@@ -5317,8 +5395,12 @@ pg_conversion_ownercheck(Oid conv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(CONVOID, ObjectIdGetDatum(conv_oid));
@@ -5445,8 +5527,12 @@ pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(STATEXTOID, ObjectIdGetDatum(stat_oid));
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 2347bc2a00..046736ada1 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -2566,7 +2566,8 @@ check_object_ownership(Oid roleid, ObjectType objtype, ObjectAddress address,
 		case OBJECT_TSTEMPLATE:
 		case OBJECT_ACCESS_METHOD:
 			/* We treat these object types as being owned by superusers */
-			if (!superuser_arg(roleid))
+			if (!superuser_arg(roleid) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("must be superuser")));
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 5403110820..4f7ab8e610 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -21,6 +21,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
@@ -696,9 +697,16 @@ ProcedureCreate(const char *procedureName,
 			set_items = (ArrayType *) DatumGetPointer(proconfig);
 			if (set_items)		/* Need a new GUC nesting level */
 			{
+				GucContext	gc;
+
 				save_nestlevel = NewGUCNestLevel();
+				if (superuser() ||
+					has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
+					gc = PGC_SUSET;
+				else
+					gc = PGC_USERSET;
 				ProcessGUCArray(set_items,
-								(superuser() ? PGC_SUSET : PGC_USERSET),
+								gc,
 								PGC_S_SESSION,
 								GUC_ACTION_SAVE);
 			}
diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c
index 046cf2df08..f59ab758fd 100644
--- a/src/backend/commands/aggregatecmds.c
+++ b/src/backend/commands/aggregatecmds.c
@@ -25,6 +25,7 @@
 #include "access/htup_details.h"
 #include "catalog/dependency.h"
 #include "catalog/pg_aggregate.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "commands/alter.h"
@@ -342,7 +343,9 @@ DefineAggregate(ParseState *pstate,
 	if (transTypeType == TYPTYPE_PSEUDO &&
 		!IsPolymorphicType(transTypeId))
 	{
-		if (transTypeId == INTERNALOID && superuser())
+		if (transTypeId == INTERNALOID &&
+			(superuser() ||
+			 has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))
 			 /* okay */ ;
 		else
 			ereport(ERROR,
@@ -383,7 +386,9 @@ DefineAggregate(ParseState *pstate,
 		if (mtransTypeType == TYPTYPE_PSEUDO &&
 			!IsPolymorphicType(mtransTypeId))
 		{
-			if (mtransTypeId == INTERNALOID && superuser())
+			if (mtransTypeId == INTERNALOID &&
+				(superuser() ||
+				 has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))
 				 /* okay */ ;
 			else
 				ereport(ERROR,
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 29249498a9..01cbe45489 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -22,6 +22,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_conversion.h"
 #include "catalog/pg_event_trigger.h"
@@ -206,13 +207,14 @@ AlterObjectRename_internal(Relation rel, Oid objectId, const char *new_name)
 		namespaceId = InvalidOid;
 
 	/* Permission checks ... superusers can always do it */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 	{
 		/* Fail if object does not have an explicit owner */
 		if (Anum_owner <= 0)
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to rename %s",
+					 errmsg("must be superuser or pg_database_security to rename %s",
 							getObjectDescriptionOids(classId, objectId))));
 
 		/* Otherwise, must be owner of the existing object */
@@ -731,7 +733,8 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
 	CheckSetNamespace(oldNspOid, nspOid);
 
 	/* Permission checks ... superusers can always do it */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 	{
 		Datum		owner;
 		Oid			ownerId;
@@ -741,7 +744,7 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
 		if (Anum_owner <= 0)
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to set schema of %s",
+					 errmsg("must be superuser or pg_database_security to set schema of %s",
 							getObjectDescriptionOids(classId, objid))));
 
 		/* Otherwise, must be owner of the existing object */
@@ -972,7 +975,8 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
 		bool	   *replaces;
 
 		/* Superusers can bypass permission checks */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		{
 			/* must be owner */
 			if (!has_privs_of_role(GetUserId(), old_ownerId))
diff --git a/src/backend/commands/amcmds.c b/src/backend/commands/amcmds.c
index 188109e474..4896fc0193 100644
--- a/src/backend/commands/amcmds.c
+++ b/src/backend/commands/amcmds.c
@@ -20,11 +20,13 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/pg_am.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "commands/defrem.h"
 #include "miscadmin.h"
 #include "parser/parse_func.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/rel.h"
@@ -54,12 +56,13 @@ CreateAccessMethod(CreateAmStmt *stmt)
 	rel = table_open(AccessMethodRelationId, RowExclusiveLock);
 
 	/* Must be super user */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create access method \"%s\"",
 						stmt->amname),
-				 errhint("Must be superuser to create an access method.")));
+				 errhint("Must be superuser or pg_database_security to create an access method.")));
 
 	/* Check if name is used */
 	amoid = GetSysCacheOid1(AMNAME, Anum_pg_am_oid,
diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c
index ebb0994db3..e487e75b0e 100644
--- a/src/backend/commands/collationcmds.c
+++ b/src/backend/commands/collationcmds.c
@@ -21,6 +21,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "commands/alter.h"
 #include "commands/collationcmds.h"
@@ -506,10 +507,11 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
 	Oid			nspid = PG_GETARG_OID(0);
 	int			ncreated = 0;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to import system collations")));
+				 errmsg("must be superuser or pg_database_security to import system collations")));
 
 	if (!SearchSysCacheExists1(NAMESPACEOID, ObjectIdGetDatum(nspid)))
 		ereport(ERROR,
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 2b159b60eb..9b1a38ffd6 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -763,7 +763,9 @@ check_encoding_locale_matches(int encoding, const char *collate, const char *cty
 #ifdef WIN32
 		  encoding == PG_UTF8 ||
 #endif
-		  (encoding == PG_SQL_ASCII && superuser())))
+		  (encoding == PG_SQL_ASCII &&
+		   (superuser() ||
+			has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))))
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				 errmsg("encoding \"%s\" does not match locale \"%s\"",
@@ -778,7 +780,9 @@ check_encoding_locale_matches(int encoding, const char *collate, const char *cty
 #ifdef WIN32
 		  encoding == PG_UTF8 ||
 #endif
-		  (encoding == PG_SQL_ASCII && superuser())))
+		  (encoding == PG_SQL_ASCII &&
+		   (superuser() ||
+			has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))))
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				 errmsg("encoding \"%s\" does not match locale \"%s\"",
@@ -1923,7 +1927,8 @@ have_createdb_privilege(void)
 	HeapTuple	utup;
 
 	/* Superusers can always do everything */
-	if (superuser())
+	if (superuser() ||
+		has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	utup = SearchSysCache1(AUTHOID, ObjectIdGetDatum(GetUserId()));
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 4c12aa33df..696fc7cde8 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -41,6 +41,7 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/pg_aggregate.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_cast.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
@@ -687,10 +688,11 @@ interpret_func_support(DefElem *defel)
 	 * you be superuser to specify a support function, so privilege on the
 	 * support function is moot.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to specify a support function")));
+				 errmsg("must be superuser or pg_database_security to specify a support function")));
 
 	return procOid;
 }
@@ -1118,7 +1120,8 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
 	else
 	{
 		/* if untrusted language, must be superuser */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			aclcheck_error(ACLCHECK_NO_PRIV, OBJECT_LANGUAGE,
 						   NameStr(languageStruct->lanname));
 	}
@@ -1132,10 +1135,11 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
 	 * leakproof functions can see tuples which have not yet been filtered out
 	 * by security barrier views or row-level security policies.
 	 */
-	if (isLeakProof && !superuser())
+	if (isLeakProof && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("only superuser can define a leakproof function")));
+				 errmsg("only superuser or pg_database_security can define a leakproof function")));
 
 	if (transformDefElem)
 	{
@@ -1416,10 +1420,11 @@ AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt)
 	if (leakproof_item)
 	{
 		procForm->proleakproof = intVal(leakproof_item->arg);
-		if (procForm->proleakproof && !superuser())
+		if (procForm->proleakproof && !superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("only superuser can define a leakproof function")));
+					 errmsg("only superuser or pg_database_security can define a leakproof function")));
 	}
 	if (cost_item)
 	{
@@ -1660,10 +1665,11 @@ CreateCast(CreateCastStmt *stmt)
 		 * Must be superuser to create binary-compatible casts, since
 		 * erroneous casts can easily crash the backend.
 		 */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to create a cast WITHOUT FUNCTION")));
+					 errmsg("must be superuser or pg_database_security to create a cast WITHOUT FUNCTION")));
 
 		/*
 		 * Also, insist that the types match as to size, alignment, and
@@ -2123,7 +2129,8 @@ ExecuteDoStmt(DoStmt *stmt, bool atomic)
 	else
 	{
 		/* if untrusted language, must be superuser */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			aclcheck_error(ACLCHECK_NO_PRIV, OBJECT_LANGUAGE,
 						   NameStr(languageStruct->lanname));
 	}
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index fad39e2b75..d3f7412ba2 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -30,6 +30,7 @@
 #include "catalog/pg_am.h"
 #include "catalog/pg_amop.h"
 #include "catalog/pg_amproc.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
 #include "catalog/pg_operator.h"
@@ -405,10 +406,11 @@ DefineOpClass(CreateOpClassStmt *stmt)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create an operator class")));
+				 errmsg("must be superuser or pg_database_security to create an operator class")));
 
 	/* Look up the datatype */
 	typeoid = typenameTypeId(NULL, stmt->datatype);
@@ -786,10 +788,11 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
 	 * Currently, we require superuser privileges to create an opfamily. See
 	 * comments in DefineOpClass.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create an operator family")));
+				 errmsg("must be superuser or pg_database_security to create an operator family")));
 
 	/* Insert pg_opfamily catalog entry */
 	return CreateOpFamily(stmt->amname, opfname, namespaceoid, amoid);
@@ -846,10 +849,11 @@ AlterOpFamily(AlterOpFamilyStmt *stmt)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to alter an operator family")));
+				 errmsg("must be superuser or pg_database_security to alter an operator family")));
 
 	/*
 	 * ADD and DROP cases need separate code from here on down.
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index 81598d3e08..1d40425deb 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -18,6 +18,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
@@ -62,10 +63,11 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
 	/*
 	 * Check permission
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create custom procedural language")));
+				 errmsg("must be superuser or pg_database_security to create custom procedural language")));
 
 	/*
 	 * Lookup the PL handler function and check that it is of the expected
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 11e91c4ad3..66d92c16a1 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -33,6 +33,7 @@
 #include "catalog/objectaccess.h"
 #include "catalog/partition.h"
 #include "catalog/pg_am.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_depend.h"
@@ -13255,7 +13256,8 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lock
 		if (!recursing)
 		{
 			/* Superusers can always do it */
-			if (!superuser())
+			if (!superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			{
 				Oid			namespaceOid = tuple_class->relnamespace;
 				AclResult	aclresult;
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 07c73f39de..7a46dcdd75 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -26,6 +26,7 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/partition.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_proc.h"
@@ -1574,7 +1575,8 @@ EnableDisableTrigger(Relation rel, const char *tgname,
 			/* system trigger ... ok to process? */
 			if (skip_system)
 				continue;
-			if (!superuser())
+			if (!superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("permission denied: \"%s\" is a system trigger",
diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c
index e06fb32b3d..c94e651fc9 100644
--- a/src/backend/commands/tsearchcmds.c
+++ b/src/backend/commands/tsearchcmds.c
@@ -25,6 +25,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_ts_config.h"
@@ -188,10 +189,11 @@ DefineTSParser(List *names, List *parameters)
 	Oid			namespaceoid;
 	ObjectAddress address;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create text search parsers")));
+				 errmsg("must be superuser or pg_database_security to create text search parsers")));
 
 	prsRel = table_open(TSParserRelationId, RowExclusiveLock);
 
@@ -695,10 +697,11 @@ DefineTSTemplate(List *names, List *parameters)
 	char	   *tmplname;
 	ObjectAddress address;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create text search templates")));
+				 errmsg("must be superuser or pg_database_security to create text search templates")));
 
 	/* Convert list of names to a name and namespace */
 	namespaceoid = QualifiedNameGetCreationNamespace(names, &tmplname);
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 58ec65c6af..3c89214fe5 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -211,10 +211,11 @@ DefineType(ParseState *pstate, List *names, List *parameters)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create a base type")));
+				 errmsg("must be superuser or pg_database_security to create a base type")));
 
 	/* Convert list of names to a name and namespace */
 	typeNamespace = QualifiedNameGetCreationNamespace(names, &typeName);
@@ -3756,7 +3757,8 @@ AlterTypeOwner(List *names, Oid newOwnerId, ObjectType objecttype)
 	if (typTup->typowner != newOwnerId)
 	{
 		/* Superusers can always do it */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		{
 			/* Otherwise, must be owner of the existing object */
 			if (!pg_type_ownercheck(typTup->oid, GetUserId()))
@@ -4288,7 +4290,8 @@ AlterType(AlterTypeStmt *stmt)
 	 */
 	if (requireSuper)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to alter a type")));
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 65bb733958..43f94448a4 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -940,7 +940,8 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
 		 */
 		if (roleform->rolsuper)
 		{
-			if (!superuser())
+			if (!superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("must be superuser to alter superusers")));
@@ -977,7 +978,8 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
 	if (!stmt->role && !stmt->database)
 	{
 		/* Must be superuser to alter settings globally. */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to alter settings globally")));
@@ -1254,7 +1256,8 @@ RenameRole(const char *oldname, const char *newname)
 	 */
 	if (((Form_pg_authid) GETSTRUCT(oldtuple))->rolsuper)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to rename superusers")));
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 6fff059699..7c9e407b41 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -94,5 +94,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9279', oid_symbol => 'ROLE_PG_DATABASE_SECURITY',
+  rolname => 'pg_database_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/alter_generic.out b/src/test/regress/expected/alter_generic.out
index 505eb7ede5..64e1ab571b 100644
--- a/src/test/regress/expected/alter_generic.out
+++ b/src/test/regress/expected/alter_generic.out
@@ -366,7 +366,7 @@ CREATE ROLE regress_alter_generic_user5 NOSUPERUSER;
 CREATE OPERATOR FAMILY alt_opf5 USING btree;
 SET ROLE regress_alter_generic_user5;
 ALTER OPERATOR FAMILY alt_opf5 USING btree ADD OPERATOR 1 < (int4, int2), FUNCTION 1 btint42cmp(int4, int2);
-ERROR:  must be superuser to alter an operator family
+ERROR:  must be superuser or pg_database_security to alter an operator family
 RESET ROLE;
 ERROR:  current transaction is aborted, commands ignored until end of transaction block
 DROP OPERATOR FAMILY alt_opf5 USING btree;
diff --git a/src/test/regress/expected/create_function_3.out b/src/test/regress/expected/create_function_3.out
index 5b6bc5eddb..58f9c0b3ef 100644
--- a/src/test/regress/expected/create_function_3.out
+++ b/src/test/regress/expected/create_function_3.out
@@ -166,10 +166,10 @@ SET SESSION AUTHORIZATION regress_unpriv_user;
 SET search_path TO temp_func_test, public;
 ALTER FUNCTION functest_E_1(int) NOT LEAKPROOF;
 ALTER FUNCTION functest_E_2(int) LEAKPROOF;
-ERROR:  only superuser can define a leakproof function
+ERROR:  only superuser or pg_database_security can define a leakproof function
 CREATE FUNCTION functest_E_3(int) RETURNS bool LANGUAGE 'sql'
        LEAKPROOF AS 'SELECT $1 < 200';	-- fail
-ERROR:  only superuser can define a leakproof function
+ERROR:  only superuser or pg_database_security can define a leakproof function
 RESET SESSION AUTHORIZATION;
 --
 -- CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index b9aac3d6d4..8ee3388bce 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -16,6 +16,7 @@ DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
 DROP ROLE IF EXISTS regress_priv_user10;
+DROP ROLE IF EXISTS regress_priv_user11;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -35,6 +36,7 @@ CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
 CREATE USER regress_priv_user10;
+CREATE USER regress_priv_user11;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1900,6 +1902,101 @@ COMMENT ON SERVER user10_server IS 'test comment';
 DROP SERVER user10_server;
 DROP FOREIGN DATA WRAPPER user10_fdw;
 RESET SESSION AUTHORIZATION;
+-- test pg_database_security authority over numerous database objects
+GRANT pg_database_security TO regress_priv_user11;
+SET SESSION AUTHORIZATION regress_priv_user11;
+CREATE ACCESS METHOD user11_am TYPE INDEX HANDLER gisthandler;
+CREATE CAST (text AS json) WITHOUT FUNCTION;
+CREATE DATABASE user11_db;
+GRANT ALL ON DATABASE user11_db TO regress_priv_user10;
+CREATE FUNCTION user11_event_trigger_func() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user11_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user11_event_trigger ON ddl_command_start -- no
+   EXECUTE PROCEDURE user11_event_trigger_func();
+ERROR:  permission denied to create event trigger "user11_event_trigger"
+HINT:  Must be superuser or a member of the pg_host_security role to create an event trigger.
+CREATE FOREIGN DATA WRAPPER user11_fdw VALIDATOR postgresql_fdw_validator; -- no
+ERROR:  permission denied to create foreign-data wrapper "user11_fdw"
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
+CREATE FUNCTION user11_secdef_func(boolean) RETURNS text
+  AS 'select $1::text;'
+  LANGUAGE sql SECURITY DEFINER;
+CREATE INDEX user11_index ON pg_catalog.pg_class(oid); -- no
+ERROR:  permission denied: "pg_class" is a system catalog
+CREATE LANGUAGE user11_lang HANDLER plpgsql_call_handler;
+CREATE OPERATOR CLASS user11_ops
+    FOR TYPE box USING gist AS
+    OPERATOR 1  <<,
+    OPERATOR 2  &<,
+    OPERATOR 3  &&,
+    OPERATOR 4  &>,
+    OPERATOR 5  >>,
+    OPERATOR 6  ~=,
+    OPERATOR 7  @>,
+    OPERATOR 8  <@,
+    OPERATOR 9  &<|,
+    OPERATOR 10 <<|,
+    OPERATOR 11 |>>,
+    OPERATOR 12 |&>,
+    FUNCTION 1  gist_box_consistent(internal, box, smallint, oid, internal),
+    FUNCTION 2  gist_box_union(internal, internal),
+    FUNCTION 5  gist_box_penalty(internal, internal, internal),
+    FUNCTION 6  gist_box_picksplit(internal, internal),
+    FUNCTION 7  gist_box_same(box, box, internal);
+CREATE TABLE user11_tbl (id integer, str text);
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION user11_publication FOR TABLE user11_tbl;
+RESET client_min_messages;
+CREATE RULE user11_rule_ins AS ON INSERT TO pg_catalog.pg_class -- no
+  DO INSTEAD DELETE FROM pg_catalog.pg_am;
+ERROR:  permission denied: "pg_class" is a system catalog
+CREATE SCHEMA user11_schema;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user11_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false); -- no
+ERROR:  must be superuser or a member of the pg_logical_replication role to create subscriptions
+RESET client_min_messages;
+CREATE STATISTICS user11_stats ON id, str FROM user11_tbl;
+CREATE TEXT SEARCH CONFIGURATION user11_tsconfig (COPY=english);
+CREATE TEXT SEARCH DICTIONARY user11_tsdict (Template=ispell, DictFile=ispell_sample, AffFile=ispell_sample);
+CREATE TEXT SEARCH PARSER user11_tsparser
+    (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE user11_tstemplate (lexize=dsimple_lexize);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION user11_trigger_func() RETURNS trigger AS $$
+BEGIN
+    RAISE DEBUG 'user11_trigger';
+END
+$$ LANGUAGE PLPGSQL;
+CREATE TRIGGER user11_trigger
+    BEFORE INSERT OR UPDATE ON user11_tbl
+    FOR EACH ROW
+    EXECUTE PROCEDURE user11_trigger_func();
+CREATE TYPE user11_type;
+CREATE VIEW user11_view AS SELECT * FROM user11_tbl;
+DROP ACCESS METHOD user11_am;
+DROP CAST (text AS json);
+REVOKE ALL ON DATABASE user11_db FROM regress_priv_user10;
+DROP DATABASE user11_db;
+DROP FUNCTION user11_event_trigger_func();
+DROP FUNCTION user11_secdef_func(boolean);
+DROP LANGUAGE user11_lang;
+DROP OPERATOR CLASS user11_ops USING gist;
+DROP OPERATOR FAMILY user11_ops USING gist;
+DROP PUBLICATION user11_publication;
+DROP SCHEMA user11_schema;
+DROP STATISTICS user11_stats;
+DROP TEXT SEARCH CONFIGURATION user11_tsconfig;
+DROP TEXT SEARCH DICTIONARY user11_tsdict;
+DROP TRIGGER user11_trigger ON user11_tbl;
+DROP FUNCTION user11_trigger_func();
+DROP TYPE user11_type;
+DROP VIEW user11_view;
+DROP TABLE user11_tbl;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2402,6 +2499,7 @@ DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
 DROP USER regress_priv_user10;
+DROP USER regress_priv_user11;
 DROP USER regress_priv_none; -- does not exist
 ERROR:  role "regress_priv_none" does not exist
 -- permissions with LOCK TABLE
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 95d1f93512..b47660e6b7 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -20,6 +20,7 @@ DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
 DROP ROLE IF EXISTS regress_priv_user10;
+DROP ROLE IF EXISTS regress_priv_user11;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -38,6 +39,7 @@ CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
 CREATE USER regress_priv_user10;
+CREATE USER regress_priv_user11;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1166,6 +1168,95 @@ DROP SERVER user10_server;
 DROP FOREIGN DATA WRAPPER user10_fdw;
 RESET SESSION AUTHORIZATION;
 
+-- test pg_database_security authority over numerous database objects
+GRANT pg_database_security TO regress_priv_user11;
+SET SESSION AUTHORIZATION regress_priv_user11;
+CREATE ACCESS METHOD user11_am TYPE INDEX HANDLER gisthandler;
+CREATE CAST (text AS json) WITHOUT FUNCTION;
+CREATE DATABASE user11_db;
+GRANT ALL ON DATABASE user11_db TO regress_priv_user10;
+CREATE FUNCTION user11_event_trigger_func() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user11_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user11_event_trigger ON ddl_command_start -- no
+   EXECUTE PROCEDURE user11_event_trigger_func();
+CREATE FOREIGN DATA WRAPPER user11_fdw VALIDATOR postgresql_fdw_validator; -- no
+CREATE FUNCTION user11_secdef_func(boolean) RETURNS text
+  AS 'select $1::text;'
+  LANGUAGE sql SECURITY DEFINER;
+CREATE INDEX user11_index ON pg_catalog.pg_class(oid); -- no
+CREATE LANGUAGE user11_lang HANDLER plpgsql_call_handler;
+CREATE OPERATOR CLASS user11_ops
+    FOR TYPE box USING gist AS
+    OPERATOR 1  <<,
+    OPERATOR 2  &<,
+    OPERATOR 3  &&,
+    OPERATOR 4  &>,
+    OPERATOR 5  >>,
+    OPERATOR 6  ~=,
+    OPERATOR 7  @>,
+    OPERATOR 8  <@,
+    OPERATOR 9  &<|,
+    OPERATOR 10 <<|,
+    OPERATOR 11 |>>,
+    OPERATOR 12 |&>,
+    FUNCTION 1  gist_box_consistent(internal, box, smallint, oid, internal),
+    FUNCTION 2  gist_box_union(internal, internal),
+    FUNCTION 5  gist_box_penalty(internal, internal, internal),
+    FUNCTION 6  gist_box_picksplit(internal, internal),
+    FUNCTION 7  gist_box_same(box, box, internal);
+CREATE TABLE user11_tbl (id integer, str text);
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION user11_publication FOR TABLE user11_tbl;
+RESET client_min_messages;
+CREATE RULE user11_rule_ins AS ON INSERT TO pg_catalog.pg_class -- no
+  DO INSTEAD DELETE FROM pg_catalog.pg_am;
+CREATE SCHEMA user11_schema;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user11_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false); -- no
+RESET client_min_messages;
+CREATE STATISTICS user11_stats ON id, str FROM user11_tbl;
+CREATE TEXT SEARCH CONFIGURATION user11_tsconfig (COPY=english);
+CREATE TEXT SEARCH DICTIONARY user11_tsdict (Template=ispell, DictFile=ispell_sample, AffFile=ispell_sample);
+CREATE TEXT SEARCH PARSER user11_tsparser
+    (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE user11_tstemplate (lexize=dsimple_lexize);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION user11_trigger_func() RETURNS trigger AS $$
+BEGIN
+    RAISE DEBUG 'user11_trigger';
+END
+$$ LANGUAGE PLPGSQL;
+CREATE TRIGGER user11_trigger
+    BEFORE INSERT OR UPDATE ON user11_tbl
+    FOR EACH ROW
+    EXECUTE PROCEDURE user11_trigger_func();
+CREATE TYPE user11_type;
+CREATE VIEW user11_view AS SELECT * FROM user11_tbl;
+DROP ACCESS METHOD user11_am;
+DROP CAST (text AS json);
+REVOKE ALL ON DATABASE user11_db FROM regress_priv_user10;
+DROP DATABASE user11_db;
+DROP FUNCTION user11_event_trigger_func();
+DROP FUNCTION user11_secdef_func(boolean);
+DROP LANGUAGE user11_lang;
+DROP OPERATOR CLASS user11_ops USING gist;
+DROP OPERATOR FAMILY user11_ops USING gist;
+DROP PUBLICATION user11_publication;
+DROP SCHEMA user11_schema;
+DROP STATISTICS user11_stats;
+DROP TEXT SEARCH CONFIGURATION user11_tsconfig;
+DROP TEXT SEARCH DICTIONARY user11_tsdict;
+DROP TRIGGER user11_trigger ON user11_tbl;
+DROP FUNCTION user11_trigger_func();
+DROP TYPE user11_type;
+DROP VIEW user11_view;
+DROP TABLE user11_tbl;
+
 -- test default ACLs
 \c -
 
@@ -1468,6 +1559,7 @@ DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
 DROP USER regress_priv_user10;
+DROP USER regress_priv_user11;
 DROP USER regress_priv_none; -- does not exist
 
 
-- 
2.21.1 (Apple Git-122.3)

#31Noah Misch
noah@leadboat.com
In reply to: Mark Dilger (#30)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Tue, May 25, 2021 at 01:33:54PM -0700, Mark Dilger wrote:

v3-0001 adds a new pg_logical_replication role with permission to manage publications and subscriptions.

v3-0004 adds a new pg_database_security role with permission to perform many
actions that would otherwise require superuser, so long as those actions do
not compromise the security of the host or network. This role, along with
pg_logical_replication, is intended to be safe to delegate to the tenant of
a database provided as a service.

pg_logical_replication would not be safe to delegate that way:
/messages/by-id/flat/CACqFVBbx6PDq+=vHM0n78kHzn8tvOM-kGO_2q_q0zNAMT+TzdA@mail.gmail.com

#32Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Noah Misch (#31)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On May 27, 2021, at 11:06 PM, Noah Misch <noah@leadboat.com> wrote:

On Tue, May 25, 2021 at 01:33:54PM -0700, Mark Dilger wrote:

v3-0001 adds a new pg_logical_replication role with permission to manage publications and subscriptions.

v3-0004 adds a new pg_database_security role with permission to perform many
actions that would otherwise require superuser, so long as those actions do
not compromise the security of the host or network. This role, along with
pg_logical_replication, is intended to be safe to delegate to the tenant of
a database provided as a service.

pg_logical_replication would not be safe to delegate that way:
/messages/by-id/flat/CACqFVBbx6PDq+=vHM0n78kHzn8tvOM-kGO_2q_q0zNAMT+TzdA@mail.gmail.com

Oh, I agree that this patch set does not go the extra step to make it safe. You are quite right to push back, as my email was poorly worded. I should have said "intended to be eventually made safe to delegate". The idea is that the patch set addresses most places in the sources where we test for superuser and tests instead for (superuser || <SOME_ROLE>), and then uses that same set of roles to control who has sufficient privileges to set GUCs. The pg_host_security and pg_network_security roles are not intended to eventually be safe to delegate. Or at least, I can't see any clear path to getting there. The pg_database_security and pg_logical_replication roles should be ones we can make safe. If we can agree as a community which set of roles are appropriate, then we can have separate patches as needed for tightening the security around them.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#33torikoshia
torikoshia@oss.nttdata.com
In reply to: Mark Dilger (#30)
Re: Delegating superuser tasks to new security roles

On 2021-05-26 05:33, Mark Dilger wrote:

On May 13, 2021, at 12:30 PM, Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

On May 13, 2021, at 12:18 PM, Jacob Champion <pchampion@vmware.com>
wrote:

On Thu, 2021-05-13 at 11:42 -0700, Mark Dilger wrote:

The distinction that Theme+Security would make is that capabilities
can be categorized by the area of the system:
-- planner
-- replication
-- logging
...
but also by the security implications of what is being done:
-- host
-- schema
-- network

Since the "security" buckets are being used for both proposals -- how
you would deal with overlap between them? When a GUC gives you enough
host access to bleed into the schema and network domains, does it get
all three attributes assigned to it, and thus require membership in
all
three roles?

Yeah, from a security standpoint, pg_host_admin basically gives
everything away. I doubt service providers would give the "host" or
"network" security to their tenants, but they would probably consider
giving "schema" security to the tenants.

(Thanks, by the way, for this thread -- I think a "capability system"
for superuser access is a great idea.)

I am happy to work on this, and appreciate feedback....

Please find attached five new patches each intended to reduce the
number of administrative tasks that require superuser privileges.

v3-0001 adds a new pg_logical_replication role with permission to
manage publications and subscriptions.

v3-0002 adds a new pg_host_security role with permission to manage
extensions, event triggers and tablespaces.

v3-0003 adds a new pg_network_security role with pemission to manage
foreign servers and data wrappers.

v3-0004 adds a new pg_database_security role with permission to
perform many actions that would otherwise require superuser, so long
as those actions do not compromise the security of the host or
network. This role, along with pg_logical_replication, is intended to
be safe to delegate to the tenant of a database provided as a service.

v3-0005 associates all GUC variables with security roles and allows
both SET and ALTER SYSTEM SET on those variables by users belonging to
the necessary security role(s). This patch extends the significance
of the pg_host_security, pg_network_security, and pg_database_security
roles added in the previous patches, as those roles are associated
with GUC variables that implicate the same security concerns.

These patches likely still need some adjustment, as there are a large
number of security relevant permission decisions in here which some
hackers may debate, but I think these are mature enough to solicit
feedback.

I admit right upfront that the regression tests guc_priv_admin and
guc_priv_tenant in v3-0005 could be made to cover a subset of GUC
variables rather than the full set of them, but I'm delaying pruning
them down until I know if the rest of the patches are basically
acceptable.

Thanks for working on this topic, I appreciate it!

BTW, do these patches enable non-superusers to create user with
bypassrls?
Since I failed to apply the patches and didn't test them,
I may have overlooked something but I didn't find the
corresponding codes.

Regards,

--
Atsushi Torikoshi
NTT DATA CORPORATION

#34Mark Dilger
mark.dilger@enterprisedb.com
In reply to: torikoshia (#33)
Re: Delegating superuser tasks to new security roles

On Jun 14, 2021, at 5:51 AM, torikoshia <torikoshia@oss.nttdata.com> wrote:

Thanks for working on this topic, I appreciate it!

Thank you for taking a look!

BTW, do these patches enable non-superusers to create user with
bypassrls?

No, I did not break out the ability to create such users.

Since I failed to apply the patches and didn't test them,
I may have overlooked something but I didn't find the
corresponding codes.

Do you believe that functionality should be added? I have not thought much about that issue.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#35torikoshia
torikoshia@oss.nttdata.com
In reply to: Mark Dilger (#34)
Re: Delegating superuser tasks to new security roles

On 2021-06-14 23:53, Mark Dilger wrote:

On Jun 14, 2021, at 5:51 AM, torikoshia <torikoshia@oss.nttdata.com>
wrote:

Thanks for working on this topic, I appreciate it!

Thank you for taking a look!

BTW, do these patches enable non-superusers to create user with
bypassrls?

No, I did not break out the ability to create such users.

Since I failed to apply the patches and didn't test them,
I may have overlooked something but I didn't find the
corresponding codes.

Do you believe that functionality should be added? I have not thought
much about that issue.

I just noticed that because I was looking into operations that can only
be done by superusers.

It might be somewhat inconvenient in PostgreSQL service providers that
don't give users superuser privileges, but at least I don't have a
specific demand for it.

Regards,

--
Atsushi Torikoshi
NTT DATA CORPORATION

#36Stephen Frost
sfrost@snowman.net
In reply to: torikoshia (#35)
Re: Delegating superuser tasks to new security roles

Greetings,

* torikoshia (torikoshia@oss.nttdata.com) wrote:

On 2021-06-14 23:53, Mark Dilger wrote:

On Jun 14, 2021, at 5:51 AM, torikoshia <torikoshia@oss.nttdata.com>
wrote:
BTW, do these patches enable non-superusers to create user with
bypassrls?

[...]

Do you believe that functionality should be added? I have not thought
much about that issue.

I just noticed that because I was looking into operations that can only be
done by superusers.

In general, I agree with the sentiment that we should be providing a way
to have non-superusers able to do things that only a superuser can do
today. I'd love to get rid of all of the explicit superuser checks in
the backend except the one that makes a superuser a member of all roles.

Thanks,

Stephen

#37Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Noah Misch (#31)
4 attachment(s)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Please find attached a new set of patches.

On May 27, 2021, at 11:06 PM, Noah Misch <noah@leadboat.com> wrote:

pg_logical_replication would not be safe to delegate that way:
/messages/by-id/flat/CACqFVBbx6PDq+=vHM0n78kHzn8tvOM-kGO_2q_q0zNAMT+TzdA@mail.gmail.com

v3-0001 creates a pg_logical_replication role and respects privileges on tables in the table sync and apply workers. With this change, by creating a user in role pg_logical_replication, only giving that user INSERT, UPDATE, DELETE, or TRUNCATE privileges as appropriate on the intended tables, and having that user rather than a superuser create a subscription, one may prevent the replication of unwanted DML on these tables as well as the replication of any DML to any other tables.

On Jun 14, 2021, at 5:51 AM, torikoshia <torikoshia@oss.nttdata.com> wrote:

BTW, do these patches enable non-superusers to create user with
bypassrls?

v3-0004 creates a pg_database_security role and allows users in this role to create roles with BYPASSRLS.

Attachments:

v3-0001-Add-default-role-for-managing-logical-replication.patchapplication/octet-stream; name=v3-0001-Add-default-role-for-managing-logical-replication.patch; x-unix-mode=0644Download
From b8dc90f386fe3e7afb4d350b45a22cbb03e66a16 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Wed, 23 Jun 2021 16:03:49 -0700
Subject: [PATCH v3 1/4] Add default role for managing logical replication

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_logical_replication role and
delegating to it the authority to add, alter, or drop publications
and subscriptions on any table regardless of table ownership, while
respecting table privileges in table sync and apply workers.

With this change, by creating a user in role pg_logical_replication,
only giving that user INSERT, UPDATE, DELETE, or TRUNCATE privileges
as appropriate on the intended tables, and having that user rather
than a superuser create a subscription, one may prevent the
replication of unwanted DML on these tables as well as the
replication of any DML to any other tables.  The prior situation
prevented new tables added to a publication from being replicated so
long as a ALTER SUBSCRIPTION ... REFRESH PUBLICATION was avoided,
but that has two deficiencies.  First, there is a race condition
between when the administrator on the subscriber side checks the
list of tables being published on the publication side and when the
subscription is created.  Second, all DML on the subscribed tables
was replicated, whereas now the administrator on the subscriber side
can restrict, for example, to only accept INSERTs.

The use of these new restrictions on logical replication will likely
result in an increase of field reports of subscriptions going into
an infinite loop of failing to apply, aborting, restarting, and
retrying.  Loops of that kind are already possible for other kinds
of errors, such as unique violations on the subscriber side.  As
such, this commit leaves the problem of resolving stuck
subscriptions for another day.
---
 doc/src/sgml/ref/create_role.sgml             |   7 +-
 doc/src/sgml/user-manag.sgml                  |  13 +
 src/backend/commands/publicationcmds.c        |  27 +-
 src/backend/commands/subscriptioncmds.c       |  26 +-
 src/backend/replication/logical/tablesync.c   |  13 +
 src/backend/replication/logical/worker.c      |  25 ++
 src/include/catalog/pg_authid.dat             |   5 +
 src/test/regress/expected/subscription.out    |   4 +-
 .../subscription/t/021_priv_escalation.pl     | 330 ++++++++++++++++++
 9 files changed, 429 insertions(+), 21 deletions(-)
 create mode 100644 src/test/subscription/t/021_priv_escalation.pl

diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml
index b6a4ea1f72..9468ff162c 100644
--- a/doc/src/sgml/ref/create_role.sgml
+++ b/doc/src/sgml/ref/create_role.sgml
@@ -174,9 +174,10 @@ in sync when changing the above synopsis!
        <para>
         These clauses determine whether a role is a replication role.  A role
         must have this attribute (or be a superuser) in order to be able to
-        connect to the server in replication mode (physical or logical
-        replication) and in order to be able to create or drop replication
-        slots.
+        connect to the server in physical replication mode.  Roles with this
+        attribute, along with the <literal>pg_logical_replication</literal>
+        role, can connect to the server in logical replication mode and can
+        create or drop replication slots. 
         A role having the <literal>REPLICATION</literal> attribute is a very
         highly privileged role, and should only be used on roles actually
         used for replication. If not specified,
diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index fe0bdb7599..be74599b54 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -581,6 +581,12 @@ DROP ROLE doomed_role;
        <entry>Allow executing programs on the database server as the user the database runs as with
        COPY and other functions which allow executing a server-side program.</entry>
       </row>
+      <row>
+       <entry>pg_logical_replication</entry>
+       <entry>Create or drop replication slots and logical replication
+       subscriptions and publications, and connect to the server in logical
+       replication mode.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -624,6 +630,13 @@ DROP ROLE doomed_role;
   great care should be taken when granting these roles to users.
   </para>
 
+  <para> The <literal>pg_logical_replication</literal> role is intended to
+  allow administrators to enable trusted, but non-superuser, roles which are
+  able to configure logical replication and to replicate data from a
+  publication while still being subject to privilege checks on the target
+  tables into which data is replicated.
+  </para>
+
   <para>
   Care should be taken when granting these roles to ensure they are only used where
   needed and with the understanding that these roles grant access to privileged
diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c
index 95c253c8e0..681fe8adf7 100644
--- a/src/backend/commands/publicationcmds.c
+++ b/src/backend/commands/publicationcmds.c
@@ -24,6 +24,7 @@
 #include "catalog/objectaccess.h"
 #include "catalog/objectaddress.h"
 #include "catalog/partition.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_publication.h"
 #include "catalog/pg_publication_rel.h"
@@ -165,11 +166,15 @@ CreatePublication(CreatePublicationStmt *stmt)
 		aclcheck_error(aclresult, OBJECT_DATABASE,
 					   get_database_name(MyDatabaseId));
 
-	/* FOR ALL TABLES requires superuser */
-	if (stmt->for_all_tables && !superuser())
+	/*
+	 * FOR ALL TABLES requires superuser or membership in the
+	 * pg_logical_replication role
+	 */
+	if (stmt->for_all_tables && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create FOR ALL TABLES publication")));
+				 errmsg("must be superuser or a member of the pg_logical_replication role to create FOR ALL TABLES publication")));
 
 	rel = table_open(PublicationRelationId, RowExclusiveLock);
 
@@ -454,7 +459,8 @@ AlterPublication(AlterPublicationStmt *stmt)
 	pubform = (Form_pg_publication) GETSTRUCT(tup);
 
 	/* must be owner */
-	if (!pg_publication_ownercheck(pubform->oid, GetUserId()))
+	if (!pg_publication_ownercheck(pubform->oid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_PUBLICATION,
 					   stmt->pubname);
 
@@ -615,8 +621,12 @@ PublicationAddTables(Oid pubid, List *rels, bool if_not_exists,
 		Relation	rel = (Relation) lfirst(lc);
 		ObjectAddress obj;
 
-		/* Must be owner of the table or superuser. */
-		if (!pg_class_ownercheck(RelationGetRelid(rel), GetUserId()))
+		/*
+		 * Must be owner of the table or superuser or a member of the
+		 * pg_logical_replication role.
+		 */
+		if (!pg_class_ownercheck(RelationGetRelid(rel), GetUserId()) &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 			aclcheck_error(ACLCHECK_NOT_OWNER, get_relkind_objtype(rel->rd_rel->relkind),
 						   RelationGetRelationName(rel));
 
@@ -679,7 +689,8 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 	if (form->pubowner == newOwnerId)
 		return;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 	{
 		AclResult	aclresult;
 
@@ -702,7 +713,7 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("permission denied to change owner of publication \"%s\"",
 							NameStr(form->pubname)),
-					 errhint("The owner of a FOR ALL TABLES publication must be a superuser.")));
+					 errhint("The owner of a FOR ALL TABLES publication must be a superuser or a member of the pg_logical_replication role.")));
 	}
 
 	form->pubowner = newOwnerId;
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index b862e59f1d..5a1f193671 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -23,6 +23,7 @@
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
 #include "catalog/objectaddress.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_subscription.h"
 #include "catalog/pg_subscription_rel.h"
 #include "catalog/pg_type.h"
@@ -372,10 +373,11 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel)
 	if (create_slot)
 		PreventInTransactionBlock(isTopLevel, "CREATE SUBSCRIPTION ... WITH (create_slot = true)");
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create subscriptions")));
+				 errmsg("must be superuser or a member of the pg_logical_replication role to create subscriptions")));
 
 	/*
 	 * If built with appropriate switch, whine when regression-testing
@@ -781,7 +783,8 @@ AlterSubscription(AlterSubscriptionStmt *stmt, bool isTopLevel)
 	subid = form->oid;
 
 	/* must be owner */
-	if (!pg_subscription_ownercheck(subid, GetUserId()))
+	if (!pg_subscription_ownercheck(subid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   stmt->subname);
 
@@ -1098,7 +1101,8 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
 	subid = form->oid;
 
 	/* must be owner */
-	if (!pg_subscription_ownercheck(subid, GetUserId()))
+	if (!pg_subscription_ownercheck(subid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   stmt->subname);
 
@@ -1383,17 +1387,23 @@ AlterSubscriptionOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 	if (form->subowner == newOwnerId)
 		return;
 
-	if (!pg_subscription_ownercheck(form->oid, GetUserId()))
+	if (!pg_subscription_ownercheck(form->oid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   NameStr(form->subname));
 
-	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
+	/*
+	 * New owner must be a superuser or a member of the pg_logical_replication
+	 * role
+	 */
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_LOGICAL_REPLICATION))
+
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of subscription \"%s\"",
 						NameStr(form->subname)),
-				 errhint("The owner of a subscription must be a superuser.")));
+				 errhint("The owner of a subscription must be a superuser or a member of the pg_logical_replication role.")));
 
 	form->subowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c
index 682c107e74..9beaf59cbd 100644
--- a/src/backend/replication/logical/tablesync.c
+++ b/src/backend/replication/logical/tablesync.c
@@ -110,6 +110,7 @@
 #include "replication/origin.h"
 #include "storage/ipc.h"
 #include "storage/lmgr.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/memutils.h"
@@ -927,6 +928,7 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	char		relstate;
 	XLogRecPtr	relstate_lsn;
 	Relation	rel;
+	AclResult	aclresult;
 	WalRcvExecResult *res;
 	char		originname[NAMEDATALEN];
 	RepOriginId originid;
@@ -1045,6 +1047,17 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	 */
 	rel = table_open(MyLogicalRepWorker->relid, RowExclusiveLock);
 
+	/*
+	 * Check that our table sync worker has permission to insert into the
+	 * target table.
+	 */
+	aclresult = pg_class_aclcheck(MyLogicalRepWorker->relid, GetUserId(),
+								  ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->rd_rel->relkind),
+					   RelationGetRelationName(rel));
+
 	/*
 	 * Start a transaction in the remote node in REPEATABLE READ mode.  This
 	 * ensures that both the replication slot we create (see below) and the
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c
index bbb659dad0..872d3b1663 100644
--- a/src/backend/replication/logical/worker.c
+++ b/src/backend/replication/logical/worker.c
@@ -105,6 +105,7 @@
 #include "storage/proc.h"
 #include "storage/procarray.h"
 #include "tcop/tcopprot.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/catcache.h"
 #include "utils/dynahash.h"
@@ -1260,6 +1261,7 @@ apply_handle_insert(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData newtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1282,6 +1284,11 @@ apply_handle_insert(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Initialize the executor state. */
 	edata = create_edata_for_relation(rel);
@@ -1376,6 +1383,7 @@ apply_handle_update(StringInfo s)
 {
 	LogicalRepRelMapEntry *rel;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	LogicalRepTupleData oldtup;
@@ -1403,6 +1411,11 @@ apply_handle_update(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_UPDATE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Check if we can do the update. */
 	check_relation_updatable(rel);
@@ -1537,6 +1550,7 @@ apply_handle_delete(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData oldtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1559,6 +1573,11 @@ apply_handle_delete(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_DELETE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Check if we can do the delete. */
 	check_relation_updatable(rel);
@@ -1925,6 +1944,7 @@ apply_handle_truncate(StringInfo s)
 	{
 		LogicalRepRelId relid = lfirst_oid(lc);
 		LogicalRepRelMapEntry *rel;
+		AclResult	aclresult;
 
 		rel = logicalrep_rel_open(relid, lockmode);
 		if (!should_apply_changes_for_rel(rel))
@@ -1936,6 +1956,11 @@ apply_handle_truncate(StringInfo s)
 			logicalrep_rel_close(rel, lockmode);
 			continue;
 		}
+		aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_TRUNCATE);
+		if (aclresult != ACLCHECK_OK)
+			aclcheck_error(aclresult,
+						   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+						   get_rel_name(rel->localreloid));
 
 		remote_rels = lappend(remote_rels, rel);
 		rels = lappend(rels, rel->localrel);
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 3da68016b6..0048a5fab7 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -79,5 +79,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9276', oid_symbol => 'ROLE_PG_LOGICAL_REPLICATION',
+  rolname => 'pg_logical_replication', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index 57f7dd9b0a..07fb04a008 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -43,7 +43,7 @@ ERROR:  subscription "regress_testsub" already exists
 -- fail - must be superuser
 SET SESSION AUTHORIZATION 'regress_subscription_user2';
 CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION foo WITH (connect = false);
-ERROR:  must be superuser to create subscriptions
+ERROR:  must be superuser or a member of the pg_logical_replication role to create subscriptions
 SET SESSION AUTHORIZATION 'regress_subscription_user';
 -- fail - invalid option combinations
 CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, copy_data = true);
@@ -137,7 +137,7 @@ ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
 -- fail - new owner must be superuser
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
 ERROR:  permission denied to change owner of subscription "regress_testsub"
-HINT:  The owner of a subscription must be a superuser.
+HINT:  The owner of a subscription must be a superuser or a member of the pg_logical_replication role.
 ALTER ROLE regress_subscription_user2 SUPERUSER;
 -- now it works
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
diff --git a/src/test/subscription/t/021_priv_escalation.pl b/src/test/subscription/t/021_priv_escalation.pl
new file mode 100644
index 0000000000..b765499374
--- /dev/null
+++ b/src/test/subscription/t/021_priv_escalation.pl
@@ -0,0 +1,330 @@
+# Copyright (c) 2021, PostgreSQL Global Development Group
+
+# This test checks that logical replication table sync workers and apply workers
+# respect privileges on database objects.
+#
+# We create a publisher node, a subscriber node, and a user named
+# 'replication_manager' in role 'pg_logical_replication' which is intentionally
+# not a superuser.  Logical replication subscriptions are created by this user,
+# and consequently the table sync and apply workers run as this user.  If the
+# database security surrounding logical replication is working correctly,
+# logical replication of data to the subscriber node which causes the workers
+# to modify tables will fail unless the replication_manager role has sufficient
+# privileges.
+#
+# Failures in the logical replication workers result in infinite retry loops on
+# the subscriber node.  To prevent the tests from getting stuck, we need to
+# stop, clean, recreate and restart the nodes after each test where we expect
+# such failures, thereby breaking the failure loops.
+#
+
+use strict;
+use warnings;
+use Time::HiRes qw(usleep);
+use PostgresNode;
+use TestLib;
+use Scalar::Util qw(blessed);
+use Test::More tests => 11;
+
+my ($cmd, $publisher, $subscriber);
+
+my $testno = 0;
+sub create_fresh_nodes
+{
+	$testno++;
+
+	$publisher = get_new_node("publisher_$testno");
+	$publisher->init(allows_streaming => 'logical');
+	$publisher->append_conf('postgresql.conf',
+							'max_worker_processes = 12');
+	$publisher->append_conf('postgresql.conf',
+							'max_logical_replication_workers = 6');
+	$publisher->start;
+
+	$subscriber = get_new_node("subscriber_$testno");
+	$subscriber->init;
+	$subscriber->append_conf('postgresql.conf',
+							 'max_worker_processes = 12');
+	$subscriber->append_conf('postgresql.conf',
+							 'max_logical_replication_workers = 6');
+	$subscriber->start;
+
+	# Create identical schema structure on both nodes
+	$cmd = q(
+		CREATE USER db_superuser WITH SUPERUSER;
+		CREATE USER replication_manager IN ROLE pg_logical_replication;
+
+		GRANT CREATE ON DATABASE postgres TO db_superuser;
+		GRANT CREATE ON DATABASE postgres TO replication_manager;
+
+		SET SESSION AUTHORIZATION db_superuser;
+
+		-- Create a table owned by db_superuser with privileges granted to
+		-- replication_manager
+		CREATE TABLE shared_tbl (i INTEGER);
+		CREATE UNIQUE INDEX shared_tbl_idx
+			ON shared_tbl(i);
+		ALTER TABLE shared_tbl REPLICA IDENTITY FULL;
+		REVOKE ALL PRIVILEGES ON TABLE shared_tbl FROM PUBLIC;
+		GRANT INSERT, UPDATE, DELETE, TRUNCATE
+			ON shared_tbl
+			TO replication_manager;
+
+		-- Create a table owned by db_superuser without privileges granted to
+		-- anybody else
+		CREATE TABLE private_tbl (i INTEGER);
+		CREATE UNIQUE INDEX private_tbl_idx
+			ON private_tbl(i);
+		ALTER TABLE private_tbl REPLICA IDENTITY FULL;
+		REVOKE ALL PRIVILEGES ON TABLE private_tbl FROM PUBLIC;
+
+		RESET SESSION AUTHORIZATION;
+	);
+	$publisher->safe_psql('postgres', $cmd);
+	$subscriber->safe_psql('postgres', $cmd);
+}
+
+sub configure_logical_replication
+{
+	my %options = @_;
+
+	# On the subscriber side only, create a logging mechanism to track what
+	# operations are performed on which tables and by which users.
+	$subscriber->safe_psql('postgres', q(
+		CREATE TABLE log (
+			i INTEGER,
+			table_name TEXT,
+			op TEXT,
+			current_username TEXT,
+			session_username TEXT
+		);
+		GRANT ALL PRIVILEGES ON log TO public;
+		CREATE FUNCTION log_row_trigger_func() RETURNS TRIGGER AS $$
+		BEGIN
+			INSERT INTO public.log
+				VALUES (NEW.i, TG_TABLE_NAME, TG_OP, CURRENT_USER, SESSION_USER);
+			RETURN NEW;
+		END;
+		$$ LANGUAGE plpgsql;
+		GRANT ALL PRIVILEGES ON FUNCTION log_row_trigger_func() TO public;
+
+		SET SESSION AUTHORIZATION db_superuser;
+		CREATE TRIGGER shared_log_row_trigger
+			AFTER INSERT OR UPDATE ON shared_tbl
+			FOR EACH ROW EXECUTE FUNCTION log_row_trigger_func();
+		ALTER TABLE shared_tbl
+			ENABLE ALWAYS TRIGGER shared_log_row_trigger;
+		CREATE TRIGGER private_log_row_trigger
+			AFTER INSERT OR UPDATE ON private_tbl
+			FOR EACH ROW EXECUTE FUNCTION log_row_trigger_func();
+		ALTER TABLE private_tbl
+			ENABLE ALWAYS TRIGGER private_log_row_trigger;
+		RESET SESSION AUTHORIZATION;
+		));
+
+	my $publisher_connstr = $publisher->connstr . ' dbname=postgres';
+	$publisher->safe_psql('postgres', qq(
+		SET SESSION AUTHORIZATION replication_manager;
+		CREATE PUBLICATION private_tbl_pub
+			FOR TABLE private_tbl;
+		CREATE PUBLICATION shared_tbl_pub
+			FOR TABLE shared_tbl;
+	));
+
+	$subscriber->safe_psql('postgres', qq(
+		SET SESSION AUTHORIZATION replication_manager;
+		CREATE SUBSCRIPTION shared_tbl_sub
+			CONNECTION '$publisher_connstr'
+			PUBLICATION shared_tbl_pub;
+	));
+
+	if ($options{'attempt_private_replication'})
+	{
+		$subscriber->safe_psql('postgres', qq(
+			SET SESSION AUTHORIZATION replication_manager;
+			CREATE SUBSCRIPTION private_tbl_sub
+				CONNECTION '$publisher_connstr'
+				PUBLICATION private_tbl_pub;
+		));
+	}
+}
+
+sub destroy_nodes
+{
+	$subscriber->teardown_node();
+	$publisher->teardown_node();
+	$subscriber->clean_node();
+	$publisher->clean_node();
+}
+
+sub truncate_log
+{
+	$subscriber->safe_psql('postgres', qq(TRUNCATE log));
+}
+
+sub truncate_test_data
+{
+	$subscriber->safe_psql('postgres', qq(
+		TRUNCATE shared_tbl;
+		TRUNCATE private_tbl;
+		TRUNCATE log));
+}
+
+# Wait for a subscription to finish replicating or to fail in the attempt.
+#
+# failure_re: a regular expression that should match the subscriber node's log
+#             if and only if the replication failed.
+# success_sql: a sql query which will return true on the subscriber node if and
+#              only if the data being awaited replicated successfully.
+# expected: "fail" or "success", depending on whether we expect the replication
+#           attempt to fail or to succeed.
+#
+sub expect_replication
+{
+	my ($failure_re, $success_sql, $expected, $testname) = @_;
+
+	for (1..1800)	# 180 seconds max
+	{
+		# Has the subscription failed?
+		my $contents = TestLib::slurp_file($subscriber->logfile);
+		if ($contents =~ m/$failure_re/ms)
+		{
+			is ("fail", $expected, $testname);
+			return;
+		}
+
+		# Has the subscription caught up?
+		if ($subscriber->safe_psql('postgres', $success_sql) eq 't')
+		{
+			is ("success", $expected, $testname);
+			return;
+		}
+
+		# Wait 0.1 second before retrying.
+		usleep(100_000);
+	}
+
+	diag("replication_fails timed out waiting for failure matching /$failure_re/" .
+		 "or for true value returned from '$success_sql'");
+}
+
+sub expect_log
+{
+	my ($expected, $testname) = @_;
+
+	is ($subscriber->safe_psql('postgres', qq(SELECT * FROM log)),
+		$expected, $testname);
+}
+
+sub expect_value
+{
+	my ($table, $expected, $testname) = @_;
+
+	is ($subscriber->safe_psql('postgres', qq(SELECT i FROM $table)),
+		$expected, $testname);
+}
+
+#
+# Check that 'replication_manager' can replicate INSERT to the shared table
+#
+create_fresh_nodes();
+configure_logical_replication();
+$publisher->wait_for_catchup('shared_tbl_sub');
+$publisher->safe_psql('postgres', qq(
+	SET SESSION AUTHORIZATION db_superuser;
+	INSERT INTO shared_tbl (i) VALUES (1);
+));
+expect_replication(
+	qr/ERROR/,		# We should not see any ERROR message
+	qq(SELECT COUNT(1) > 0 FROM shared_tbl),
+	"success",
+	"replication can propogate inserts into shared_tbl");
+expect_log(
+	"1|shared_tbl|INSERT|replication_manager|replication_manager",
+	"successful replication of INSERT to shared_tbl is logged");
+expect_value(
+	"shared_tbl", "1",
+	"shared_tbl contains expected row after replication of INSERT");
+
+#
+# Check that 'replication_manager' can replicate UPDATE to the shared table
+#
+truncate_log();
+$publisher->safe_psql('postgres', qq(
+	SET SESSION AUTHORIZATION db_superuser;
+	UPDATE shared_tbl SET i = i + 1;
+));
+expect_replication(
+	qr/ERROR/,		# We should not see any ERROR message
+	qq(SELECT COUNT(1) > 0 FROM shared_tbl WHERE i = 2),
+	"success",
+	"replication can propogate updates into shared_tbl");
+expect_log(
+	"2|shared_tbl|UPDATE|replication_manager|replication_manager",
+	"successful replication of UPDATE to shared_tbl is logged");
+expect_value(
+	"shared_tbl", "2",
+	"shared_tbl contains expected row after replication of UPDATE");
+
+#
+# Check that having privileges to replicate into a table allows triggering
+# functions which replication_manager would otherwise not have permission to
+# execute.  This may seem wrong, but it is how function execution privileges
+# are handled vis-a-vis triggers under non-logical-replication circumstances,
+# and it would be more surprising for logical replication to diverge from this
+# behavior than to adhere to it.
+#
+truncate_test_data();
+$subscriber->safe_psql('postgres', q(
+	SET SESSION AUTHORIZATION db_superuser;
+	CREATE FUNCTION db_superuser_func() returns trigger as $$
+	BEGIN
+		NEW.i = NEW.i + 1;
+		RETURN NEW;
+	END;
+	$$ LANGUAGE plpgsql;
+	REVOKE ALL PRIVILEGES ON FUNCTION db_superuser_func() FROM PUBLIC;
+	CREATE TRIGGER escalation_trig
+		BEFORE INSERT OR UPDATE
+		ON shared_tbl
+		FOR EACH ROW EXECUTE FUNCTION db_superuser_func();
+	ALTER TABLE shared_tbl
+		ENABLE ALWAYS TRIGGER escalation_trig;
+	GRANT INSERT ON shared_tbl TO replication_manager;
+));
+$publisher->safe_psql('postgres', qq(
+	SET SESSION AUTHORIZATION db_superuser;
+	INSERT INTO shared_tbl (i) VALUES (3);
+));
+expect_replication(
+	qr/ERROR/,		# We should not see any ERROR message
+	qq(SELECT COUNT(1) > 0 FROM shared_tbl WHERE i IN (3, 4)),
+	"success",
+	"replication performs inserts despite lacking trigger function privileges");
+expect_log(
+	"4|shared_tbl|INSERT|replication_manager|replication_manager",
+	"successful replication and triggered modification of INSERT into shared_tbl is logged");
+expect_value(
+	"shared_tbl", "4",
+	"shared_tbl contains expected, trigger-altered value");
+truncate_test_data();
+
+#
+# Check that table sync workers cannot INSERT into the private table
+#
+destroy_nodes();
+create_fresh_nodes();
+$publisher->safe_psql('postgres', qq(
+SET SESSION AUTHORIZATION db_superuser;
+INSERT INTO private_tbl (i) VALUES (6);
+));
+configure_logical_replication(
+	attempt_private_replication => 1);
+expect_replication(
+	qr/ERROR/,
+	qq(SELECT COUNT(1) > 0 FROM private_tbl WHERE i = 6),
+	"fail",
+	"table sync workers cannot insert into private table");
+expect_value(
+	"private_tbl", "",
+	"private_tbl empty after failed table sync");
-- 
2.21.1 (Apple Git-122.3)

v3-0002-Add-default-role-for-host-security-operations.patchapplication/octet-stream; name=v3-0002-Add-default-role-for-host-security-operations.patch; x-unix-mode=0644Download
From 387f5684f1c3d90d38f609b8aaa562eb68cfc1e6 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 29 Jun 2021 09:54:48 -0700
Subject: [PATCH v3 2/4] Add default role for host security operations

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_host_security role and
delegating to it the authority to load extensions, and to create,
alter, and drop event triggers and tablespaces.
---
 doc/src/sgml/ref/alter_event_trigger.sgml   |  3 ++-
 doc/src/sgml/ref/create_event_trigger.sgml  |  3 ++-
 doc/src/sgml/ref/create_tablespace.sgml     |  7 +++---
 doc/src/sgml/ref/drop_tablespace.sgml       | 16 ++++++-------
 doc/src/sgml/ref/load.sgml                  | 12 +++++-----
 doc/src/sgml/user-manag.sgml                |  6 +++++
 src/backend/catalog/aclchk.c                | 19 +++++++++++-----
 src/backend/commands/event_trigger.c        | 11 +++++----
 src/backend/commands/extension.c            |  7 +++---
 src/backend/commands/tablespace.c           |  8 ++++---
 src/backend/tcop/utility.c                  |  4 +++-
 src/include/catalog/pg_authid.dat           |  5 +++++
 src/pl/plperl/expected/plperl_setup.out     |  4 ++--
 src/test/regress/expected/event_trigger.out |  4 ++--
 src/test/regress/expected/privileges.out    | 25 +++++++++++++++++++--
 src/test/regress/input/tablespace.source    | 10 +++++++++
 src/test/regress/output/tablespace.source   |  9 ++++++++
 src/test/regress/sql/privileges.sql         | 24 +++++++++++++++++++-
 18 files changed, 135 insertions(+), 42 deletions(-)

diff --git a/doc/src/sgml/ref/alter_event_trigger.sgml b/doc/src/sgml/ref/alter_event_trigger.sgml
index ef5253bf37..31ec520e13 100644
--- a/doc/src/sgml/ref/alter_event_trigger.sgml
+++ b/doc/src/sgml/ref/alter_event_trigger.sgml
@@ -37,7 +37,8 @@ ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> RENAME TO
   </para>
 
   <para>
-   You must be superuser to alter an event trigger.
+   You must be superuser or a member of role
+   <literal>pg_host_security</literal> to alter an event trigger.
   </para>
  </refsect1>
 
diff --git a/doc/src/sgml/ref/create_event_trigger.sgml b/doc/src/sgml/ref/create_event_trigger.sgml
index becd31bcad..af21622a45 100644
--- a/doc/src/sgml/ref/create_event_trigger.sgml
+++ b/doc/src/sgml/ref/create_event_trigger.sgml
@@ -116,7 +116,8 @@ CREATE EVENT TRIGGER <replaceable class="parameter">name</replaceable>
   <title>Notes</title>
 
   <para>
-   Only superusers can create event triggers.
+   Only superusers and members of role <literal>pg_host_security</literal> can
+   create event triggers.
   </para>
 
   <para>
diff --git a/doc/src/sgml/ref/create_tablespace.sgml b/doc/src/sgml/ref/create_tablespace.sgml
index 84fa7ee5e2..cf4997b22b 100644
--- a/doc/src/sgml/ref/create_tablespace.sgml
+++ b/doc/src/sgml/ref/create_tablespace.sgml
@@ -38,9 +38,10 @@ CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable>
   </para>
 
   <para>
-   A tablespace allows superusers to define an alternative location on
-   the file system where the data files containing database objects
-   (such as tables and indexes) can reside.
+   A tablespace allows superusers and members of role
+   <literal>pg_host_security</literal> to define an alternative location on the
+   file system where the data files containing database objects (such as tables
+   and indexes) can reside.
   </para>
 
   <para>
diff --git a/doc/src/sgml/ref/drop_tablespace.sgml b/doc/src/sgml/ref/drop_tablespace.sgml
index 047e4e0481..dad2e6ac4d 100644
--- a/doc/src/sgml/ref/drop_tablespace.sgml
+++ b/doc/src/sgml/ref/drop_tablespace.sgml
@@ -33,14 +33,14 @@ DROP TABLESPACE [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
   </para>
 
   <para>
-   A tablespace can only be dropped by its owner or a superuser.
-   The tablespace must be empty of all database objects before it can be
-   dropped. It is possible that objects in other databases might still reside
-   in the tablespace even if no objects in the current database are using
-   the tablespace.  Also, if the tablespace is listed in the <xref
-   linkend="guc-temp-tablespaces"/> setting of any active session, the
-   <command>DROP</command> might fail due to temporary files residing in the
-   tablespace.
+   A tablespace can only be dropped by its owner, a member of role
+   <literal>pg_host_security</literal>, or a superuser.  The tablespace must be
+   empty of all database objects before it can be dropped. It is possible that
+   objects in other databases might still reside in the tablespace even if no
+   objects in the current database are using the tablespace.  Also, if the
+   tablespace is listed in the <xref linkend="guc-temp-tablespaces"/> setting
+   of any active session, the <command>DROP</command> might fail due to
+   temporary files residing in the tablespace.
   </para>
  </refsect1>
 
diff --git a/doc/src/sgml/ref/load.sgml b/doc/src/sgml/ref/load.sgml
index 2c214dd726..e401c5b078 100644
--- a/doc/src/sgml/ref/load.sgml
+++ b/doc/src/sgml/ref/load.sgml
@@ -52,12 +52,12 @@ LOAD '<replaceable class="parameter">filename</replaceable>'
   </indexterm>
 
   <para>
-   Non-superusers can only apply <command>LOAD</command> to library files
-   located in <filename>$libdir/plugins/</filename> &mdash; the specified
-   <replaceable class="parameter">filename</replaceable> must begin
-   with exactly that string.  (It is the database administrator's
-   responsibility to ensure that only <quote>safe</quote> libraries
-   are installed there.)
+   Non-superusers not members of role <literal>pg_host_security</literal> can
+   only apply <command>LOAD</command> to library files located in
+   <filename>$libdir/plugins/</filename> &mdash; the specified <replaceable
+   class="parameter">filename</replaceable> must begin with exactly that
+   string.  (It is the database administrator's responsibility to ensure that
+   only <quote>safe</quote> libraries are installed there.)
   </para>
  </refsect1>
 
diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index be74599b54..103c3ed21c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -587,6 +587,12 @@ DROP ROLE doomed_role;
        subscriptions and publications, and connect to the server in logical
        replication mode.</entry>
       </row>
+      <row>
+       <entry>pg_host_security</entry>
+       <entry>Allow loading extensions, and creating, altering, and dropping
+       event triggers and tablespaces.
+       </entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 53392414f1..50bafae58e 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -4299,8 +4299,12 @@ pg_tablespace_aclmask(Oid spc_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_host_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
 		return mask;
 
 	/*
@@ -5027,8 +5031,12 @@ pg_tablespace_ownercheck(Oid spc_oid, Oid roleid)
 	HeapTuple	spctuple;
 	Oid			spcowner;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_host_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
 		return true;
 
 	/* Search syscache for pg_tablespace */
@@ -5217,7 +5225,8 @@ pg_event_trigger_ownercheck(Oid et_oid, Oid roleid)
 	Oid			ownerId;
 
 	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(EVENTTRIGGEROID, ObjectIdGetDatum(et_oid));
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 9c31c9e763..860565f825 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -20,6 +20,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_event_trigger.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
@@ -119,12 +120,13 @@ CreateEventTrigger(CreateEventTrigStmt *stmt)
 	 * this, but there are obvious privilege escalation risks which would have
 	 * to somehow be plugged first.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create event trigger \"%s\"",
 						stmt->trigname),
-				 errhint("Must be superuser to create an event trigger.")));
+				 errhint("Must be superuser or a member of the pg_host_security role to create an event trigger.")));
 
 	/* Validate event name. */
 	if (strcmp(stmt->eventname, "ddl_command_start") != 0 &&
@@ -477,12 +479,13 @@ AlterEventTriggerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					   NameStr(form->evtname));
 
 	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of event trigger \"%s\"",
 						NameStr(form->evtname)),
-				 errhint("The owner of an event trigger must be a superuser.")));
+				 errhint("The owner of an event trigger must be a superuser or a member of the pg_host_security role.")));
 
 	form->evtowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 41857feda9..db22f3207f 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -852,7 +852,8 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 	 * here so that the control flags are correctly associated with the right
 	 * script(s) if they happen to be set in secondary control files.
 	 */
-	if (control->superuser && !superuser())
+	if (control->superuser && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 	{
 		if (extension_is_trusted(control))
 			switch_to_superuser = true;
@@ -863,7 +864,7 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 							control->name),
 					 control->trusted
 					 ? errhint("Must have CREATE privilege on current database to create this extension.")
-					 : errhint("Must be superuser to create this extension.")));
+					 : errhint("Must be superuser or a member of the pg_host_security role to create this extension.")));
 		else
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -871,7 +872,7 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 							control->name),
 					 control->trusted
 					 ? errhint("Must have CREATE privilege on current database to update this extension.")
-					 : errhint("Must be superuser to update this extension.")));
+					 : errhint("Must be superuser or a member of the pg_host_security role to update this extension.")));
 	}
 
 	filename = get_extension_script_filename(control, from_version, version);
diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index 69ea155d50..c8720664b6 100644
--- a/src/backend/commands/tablespace.c
+++ b/src/backend/commands/tablespace.c
@@ -63,6 +63,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_tablespace.h"
 #include "commands/comment.h"
@@ -242,13 +243,14 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
 	Oid			ownerId;
 	Datum		newOptions;
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_host_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create tablespace \"%s\"",
 						stmt->tablespacename),
-				 errhint("Must be superuser to create a tablespace.")));
+				 errhint("Must be superuser or a member of the pg_host_security role to create a tablespace.")));
 
 	/* However, the eventual owner of the tablespace need not be */
 	if (stmt->owner)
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 7a2da9dab4..0e2278b049 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -24,6 +24,7 @@
 #include "catalog/catalog.h"
 #include "catalog/index.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/toasting.h"
 #include "commands/alter.h"
@@ -825,7 +826,8 @@ standard_ProcessUtility(PlannedStmt *pstmt,
 
 				closeAllVfds(); /* probably not necessary... */
 				/* Allowed names are restricted if you're not superuser */
-				load_file(stmt->filename, !superuser());
+				load_file(stmt->filename, !superuser() &&
+						  !has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY));
 			}
 			break;
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 0048a5fab7..33d5b637a1 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -84,5 +84,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9277', oid_symbol => 'ROLE_PG_HOST_SECURITY',
+  rolname => 'pg_host_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/pl/plperl/expected/plperl_setup.out b/src/pl/plperl/expected/plperl_setup.out
index a1a24dfb41..bab9b3db53 100644
--- a/src/pl/plperl/expected/plperl_setup.out
+++ b/src/pl/plperl/expected/plperl_setup.out
@@ -12,7 +12,7 @@ ERROR:  permission denied to create extension "plperl"
 HINT:  Must have CREATE privilege on current database to create this extension.
 CREATE EXTENSION plperlu;  -- fail
 ERROR:  permission denied to create extension "plperlu"
-HINT:  Must be superuser to create this extension.
+HINT:  Must be superuser or a member of the pg_host_security role to create this extension.
 RESET ROLE;
 DO $$
 begin
@@ -24,7 +24,7 @@ SET ROLE regress_user1;
 CREATE EXTENSION plperl;
 CREATE EXTENSION plperlu;  -- fail
 ERROR:  permission denied to create extension "plperlu"
-HINT:  Must be superuser to create this extension.
+HINT:  Must be superuser or a member of the pg_host_security role to create this extension.
 CREATE FUNCTION foo1() returns int language plperl as '1;';
 SELECT foo1();
  foo1 
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index 44d545de25..709532c06a 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -90,7 +90,7 @@ set role regress_evt_user;
 create event trigger regress_event_trigger_noperms on ddl_command_start
    execute procedure test_event_trigger();
 ERROR:  permission denied to create event trigger "regress_event_trigger_noperms"
-HINT:  Must be superuser to create an event trigger.
+HINT:  Must be superuser or a member of the pg_host_security role to create an event trigger.
 reset role;
 -- test enabling and disabling
 alter event trigger regress_event_trigger disable;
@@ -176,7 +176,7 @@ NOTICE:  test_event_trigger: ddl_command_end ALTER DEFAULT PRIVILEGES
 -- alter owner to non-superuser should fail
 alter event trigger regress_event_trigger owner to regress_evt_user;
 ERROR:  permission denied to change owner of event trigger "regress_event_trigger"
-HINT:  The owner of an event trigger must be a superuser.
+HINT:  The owner of an event trigger must be a superuser or a member of the pg_host_security role.
 -- alter owner to superuser should work
 alter role regress_evt_user superuser;
 alter event trigger regress_event_trigger owner to regress_evt_user;
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 83cff902f3..9664276359 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -13,6 +13,7 @@ DROP ROLE IF EXISTS regress_priv_user4;
 DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
+DROP ROLE IF EXISTS regress_priv_user8;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -29,6 +30,7 @@ CREATE USER regress_priv_user5;	-- duplicate
 ERROR:  role "regress_priv_user5" already exists
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
+CREATE USER regress_priv_user8;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1829,6 +1831,24 @@ TABLE information_schema.enabled_roles;
 INSERT INTO datdba_only DEFAULT VALUES;
 ERROR:  permission denied for table datdba_only
 ROLLBACK;
+-- test pg_host_security authority to create event triggers
+GRANT pg_host_security TO regress_priv_user8;
+SET SESSION AUTHORIZATION regress_priv_user8;
+CREATE FUNCTION user8_event_trigger() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user8_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user8_event_trigger_start ON ddl_command_start
+   EXECUTE PROCEDURE user8_event_trigger();
+CREATE EVENT TRIGGER user8_event_trigger_end ON ddl_command_end
+   EXECUTE FUNCTION user8_event_trigger();
+COMMENT ON EVENT TRIGGER user8_event_trigger_start IS 'test comment';
+ALTER EVENT TRIGGER user8_event_trigger_end RENAME TO user8_event_trigger_finish;
+DROP EVENT TRIGGER user8_event_trigger_start;
+DROP EVENT TRIGGER user8_event_trigger_finish;
+DROP FUNCTION user8_event_trigger;
+RESET SESSION AUTHORIZATION;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2328,8 +2348,9 @@ DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
-DROP USER regress_priv_user8; -- does not exist
-ERROR:  role "regress_priv_user8" does not exist
+DROP USER regress_priv_user8;
+DROP USER regress_priv_user9; -- does not exist
+ERROR:  role "regress_priv_user9" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/input/tablespace.source b/src/test/regress/input/tablespace.source
index c133e73499..a46cb7fcbf 100644
--- a/src/test/regress/input/tablespace.source
+++ b/src/test/regress/input/tablespace.source
@@ -405,6 +405,16 @@ ALTER TABLE ALL IN TABLESPACE regress_tblspace_renamed SET TABLESPACE pg_default
 -- Should succeed
 DROP TABLESPACE regress_tblspace_renamed;
 
+-- Role pg_host_security should be able to create, alter, and drop tablespaces
+CREATE USER tablespace_admin;
+GRANT pg_host_security TO tablespace_admin;
+SET SESSION AUTHORIZATION tablespace_admin;
+CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@'; -- ok
+ALTER TABLESPACE regress_tblspace RENAME TO regress_tblspace_renamed;
+ALTER TABLESPACE regress_tblspace_renamed SET (random_page_cost = 1.0, seq_page_cost = 1.1);
+DROP TABLESPACE regress_tblspace_renamed;
+RESET SESSION AUTHORIZATION;
+
 DROP SCHEMA testschema CASCADE;
 
 DROP ROLE regress_tablespace_user1;
diff --git a/src/test/regress/output/tablespace.source b/src/test/regress/output/tablespace.source
index 1bbe7e0323..03367118f0 100644
--- a/src/test/regress/output/tablespace.source
+++ b/src/test/regress/output/tablespace.source
@@ -924,6 +924,15 @@ ALTER TABLE ALL IN TABLESPACE regress_tblspace_renamed SET TABLESPACE pg_default
 NOTICE:  no matching relations in tablespace "regress_tblspace_renamed" found
 -- Should succeed
 DROP TABLESPACE regress_tblspace_renamed;
+-- Role pg_host_security should be able to create, alter, and drop tablespaces
+CREATE USER tablespace_admin;
+GRANT pg_host_security TO tablespace_admin;
+SET SESSION AUTHORIZATION tablespace_admin;
+CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@'; -- ok
+ALTER TABLESPACE regress_tblspace RENAME TO regress_tblspace_renamed;
+ALTER TABLESPACE regress_tblspace_renamed SET (random_page_cost = 1.0, seq_page_cost = 1.1);
+DROP TABLESPACE regress_tblspace_renamed;
+RESET SESSION AUTHORIZATION;
 DROP SCHEMA testschema CASCADE;
 NOTICE:  drop cascades to 6 other objects
 DETAIL:  drop cascades to table testschema.foo
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 3d1a1db987..aea13448bc 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -17,6 +17,7 @@ DROP ROLE IF EXISTS regress_priv_user4;
 DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
+DROP ROLE IF EXISTS regress_priv_user8;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -32,6 +33,7 @@ CREATE USER regress_priv_user5;
 CREATE USER regress_priv_user5;	-- duplicate
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
+CREATE USER regress_priv_user8;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1092,6 +1094,25 @@ TABLE information_schema.enabled_roles;
 INSERT INTO datdba_only DEFAULT VALUES;
 ROLLBACK;
 
+-- test pg_host_security authority to create event triggers
+GRANT pg_host_security TO regress_priv_user8;
+SET SESSION AUTHORIZATION regress_priv_user8;
+CREATE FUNCTION user8_event_trigger() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user8_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user8_event_trigger_start ON ddl_command_start
+   EXECUTE PROCEDURE user8_event_trigger();
+CREATE EVENT TRIGGER user8_event_trigger_end ON ddl_command_end
+   EXECUTE FUNCTION user8_event_trigger();
+COMMENT ON EVENT TRIGGER user8_event_trigger_start IS 'test comment';
+ALTER EVENT TRIGGER user8_event_trigger_end RENAME TO user8_event_trigger_finish;
+DROP EVENT TRIGGER user8_event_trigger_start;
+DROP EVENT TRIGGER user8_event_trigger_finish;
+DROP FUNCTION user8_event_trigger;
+RESET SESSION AUTHORIZATION;
+
 -- test default ACLs
 \c -
 
@@ -1391,7 +1412,8 @@ DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
-DROP USER regress_priv_user8; -- does not exist
+DROP USER regress_priv_user8;
+DROP USER regress_priv_user9; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

v3-0003-Add-default-role-for-network-security-operations.patchapplication/octet-stream; name=v3-0003-Add-default-role-for-network-security-operations.patch; x-unix-mode=0644Download
From d02c6060dce1c4f2dbb6dd69fd0bc95da39b7dac Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 29 Jun 2021 10:48:20 -0700
Subject: [PATCH v3 3/4] Add default role for network security operations

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_network_security role and
delegating to it the authority to create, alter and drop foreign
servers and foreign data wrappers.
---
 contrib/dblink/dblink.c                       | 13 +++---
 contrib/dblink/expected/dblink.out            |  2 +-
 contrib/file_fdw/output/file_fdw.source       |  2 +-
 contrib/postgres_fdw/connection.c             | 20 +++++----
 .../postgres_fdw/expected/postgres_fdw.out    | 20 ++++-----
 contrib/postgres_fdw/option.c                 | 16 ++++---
 doc/src/sgml/user-manag.sgml                  |  6 +++
 src/backend/catalog/aclchk.c                  | 45 ++++++++++++++-----
 src/backend/commands/foreigncmds.c            | 40 +++++++++++------
 src/include/catalog/pg_authid.dat             |  5 +++
 src/test/regress/expected/foreign_data.out    | 18 ++++----
 src/test/regress/expected/privileges.out      | 18 +++++++-
 src/test/regress/sql/privileges.sql           | 17 ++++++-
 13 files changed, 153 insertions(+), 69 deletions(-)

diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 3a0beaa88e..2c4a065240 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -39,6 +39,7 @@
 #include "access/reloptions.h"
 #include "access/table.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_foreign_data_wrapper.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_type.h"
@@ -352,7 +353,7 @@ dblink_connect(PG_FUNCTION_ARGS)
 				 errdetail_internal("%s", msg)));
 	}
 
-	/* check password actually used if not superuser */
+	/* check password actually used if not superuser nor pg_network_security */
 	dblink_security_check(conn, rconn);
 
 	/* attempt to set client encoding to match server encoding, if needed */
@@ -2666,7 +2667,8 @@ deleteConnection(const char *name)
 static void
 dblink_security_check(PGconn *conn, remoteConn *rconn)
 {
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 	{
 		if (!PQconnectionUsedPassword(conn))
 		{
@@ -2678,7 +2680,7 @@ dblink_security_check(PGconn *conn, remoteConn *rconn)
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superuser cannot connect if the server does not request a password."),
+					 errdetail("Non-superuser other than pg_network_security cannot connect if the server does not request a password."),
 					 errhint("Target server's authentication method must be changed.")));
 		}
 	}
@@ -2693,7 +2695,8 @@ dblink_security_check(PGconn *conn, remoteConn *rconn)
 static void
 dblink_connstr_check(const char *connstr)
 {
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 	{
 		PQconninfoOption *options;
 		PQconninfoOption *option;
@@ -2720,7 +2723,7 @@ dblink_connstr_check(const char *connstr)
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superusers must provide a password in the connection string.")));
+					 errdetail("Non-superusers other than pg_network_security must provide a password in the connection string.")));
 	}
 }
 
diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out
index 6516d4f131..d575891ad1 100644
--- a/contrib/dblink/expected/dblink.out
+++ b/contrib/dblink/expected/dblink.out
@@ -887,7 +887,7 @@ SET SESSION AUTHORIZATION regress_dblink_user;
 -- should fail
 SELECT dblink_connect('myconn', 'fdtest');
 ERROR:  password is required
-DETAIL:  Non-superusers must provide a password in the connection string.
+DETAIL:  Non-superusers other than pg_network_security must provide a password in the connection string.
 -- should succeed
 SELECT dblink_connect_u('myconn', 'fdtest');
  dblink_connect_u 
diff --git a/contrib/file_fdw/output/file_fdw.source b/contrib/file_fdw/output/file_fdw.source
index 52b4d5f1df..49e2a9e45f 100644
--- a/contrib/file_fdw/output/file_fdw.source
+++ b/contrib/file_fdw/output/file_fdw.source
@@ -17,7 +17,7 @@ CREATE SERVER file_server FOREIGN DATA WRAPPER file_fdw;
 SET ROLE regress_file_fdw_user;
 CREATE FOREIGN DATA WRAPPER file_fdw2 HANDLER file_fdw_handler VALIDATOR file_fdw_validator;   -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "file_fdw2"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 CREATE SERVER file_server2 FOREIGN DATA WRAPPER file_fdw;   -- ERROR
 ERROR:  permission denied for foreign-data wrapper file_fdw
 CREATE USER MAPPING FOR regress_file_fdw_user SERVER file_server;   -- ERROR
diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
index 82aa14a65d..4f0da2b13d 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -14,6 +14,7 @@
 
 #include "access/htup_details.h"
 #include "access/xact.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_user_mapping.h"
 #include "commands/defrem.h"
 #include "funcapi.h"
@@ -23,6 +24,7 @@
 #include "postgres_fdw.h"
 #include "storage/fd.h"
 #include "storage/latch.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/datetime.h"
 #include "utils/hsearch.h"
@@ -425,11 +427,12 @@ connect_pg_server(ForeignServer *server, UserMapping *user)
 		 * check_conn_params.
 		 */
 		if (!superuser_arg(user->userid) && UserMappingPasswordRequired(user) &&
+			!has_privs_of_role(user->userid, ROLE_PG_NETWORK_SECURITY) &&
 			!PQconnectionUsedPassword(conn))
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superuser cannot connect if the server does not request a password."),
+					 errdetail("Non-superuser other than pg_network_security cannot connect if the server does not request a password."),
 					 errhint("Target server's authentication method must be changed or password_required=false set in the user mapping attributes.")));
 
 		/* Prepare new session for use */
@@ -488,11 +491,11 @@ UserMappingPasswordRequired(UserMapping *user)
 }
 
 /*
- * For non-superusers, insist that the connstr specify a password.  This
- * prevents a password from being picked up from .pgpass, a service file, the
- * environment, etc.  We don't want the postgres user's passwords,
- * certificates, etc to be accessible to non-superusers.  (See also
- * dblink_connstr_check in contrib/dblink.)
+ * For non-superusers other than pg_network_security, insist that the connstr
+ * specify a password.  This prevents a password from being picked up from
+ * .pgpass, a service file, the environment, etc.  We don't want the postgres
+ * user's passwords, certificates, etc to be accessible to non-superusers.
+ * (See also dblink_connstr_check in contrib/dblink.)
  */
 static void
 check_conn_params(const char **keywords, const char **values, UserMapping *user)
@@ -500,7 +503,8 @@ check_conn_params(const char **keywords, const char **values, UserMapping *user)
 	int			i;
 
 	/* no check required if superuser */
-	if (superuser_arg(user->userid))
+	if (superuser_arg(user->userid) ||
+		has_privs_of_role(user->userid, ROLE_PG_NETWORK_SECURITY))
 		return;
 
 	/* ok if params contain a non-empty password */
@@ -517,7 +521,7 @@ check_conn_params(const char **keywords, const char **values, UserMapping *user)
 	ereport(ERROR,
 			(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 			 errmsg("password is required"),
-			 errdetail("Non-superusers must provide a password in the user mapping.")));
+			 errdetail("Non-superusers other than pg_network_security must provide a password in the user mapping.")));
 }
 
 /*
diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out
index 31b5de91ad..0c7f28c487 100644
--- a/contrib/postgres_fdw/expected/postgres_fdw.out
+++ b/contrib/postgres_fdw/expected/postgres_fdw.out
@@ -9227,7 +9227,7 @@ CREATE FOREIGN TABLE ft1_nopw (
 ) SERVER loopback_nopw OPTIONS (schema_name 'public', table_name 'ft1');
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superusers must provide a password in the user mapping.
+DETAIL:  Non-superusers other than pg_network_security must provide a password in the user mapping.
 -- If we add a password to the connstr it'll fail, because we don't allow passwords
 -- in connstrs only in user mappings.
 DO $d$
@@ -9246,15 +9246,15 @@ PL/pgSQL function inline_code_block line 3 at EXECUTE
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password 'dummypw');
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superuser cannot connect if the server does not request a password.
+DETAIL:  Non-superuser other than pg_network_security cannot connect if the server does not request a password.
 HINT:  Target server's authentication method must be changed or password_required=false set in the user mapping attributes.
 -- Unpriv user cannot make the mapping passwordless
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password_required 'false');
-ERROR:  password_required=false is superuser-only
-HINT:  User mappings with the password_required option set to false may only be created or modified by the superuser
+ERROR:  password_required=false requires superuser or pg_network_security privilege
+HINT:  User mappings with the password_required option set to false may only be created or modified by the superuser or pg_network_security
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superuser cannot connect if the server does not request a password.
+DETAIL:  Non-superuser other than pg_network_security cannot connect if the server does not request a password.
 HINT:  Target server's authentication method must be changed or password_required=false set in the user mapping attributes.
 RESET ROLE;
 -- But the superuser can
@@ -9271,11 +9271,11 @@ SELECT 1 FROM ft1_nopw LIMIT 1;
 -- first set password_required so we see the right error messages
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (SET password_required 'true');
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslcert 'foo.crt');
-ERROR:  sslcert and sslkey are superuser-only
-HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser
+ERROR:  sslcert and sslkey require superuser or pg_network_security privilege
+HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser or pg_network_security
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslkey 'foo.key');
-ERROR:  sslcert and sslkey are superuser-only
-HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser
+ERROR:  sslcert and sslkey require superuser or pg_network_security privilege
+HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser or pg_network_security
 -- We're done with the role named after a specific user and need to check the
 -- changes to the public mapping.
 DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;
@@ -9283,7 +9283,7 @@ DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;
 -- lacks password_required=false
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superusers must provide a password in the user mapping.
+DETAIL:  Non-superusers other than pg_network_security must provide a password in the user mapping.
 RESET ROLE;
 -- The user mapping for public is passwordless and lacks the password_required=false
 -- mapping option, but will work because the current user is a superuser.
diff --git a/contrib/postgres_fdw/option.c b/contrib/postgres_fdw/option.c
index 672b55a808..825c37463b 100644
--- a/contrib/postgres_fdw/option.c
+++ b/contrib/postgres_fdw/option.c
@@ -13,12 +13,14 @@
 #include "postgres.h"
 
 #include "access/reloptions.h"
+#include "catalog/pg_authid_d.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_foreign_table.h"
 #include "catalog/pg_user_mapping.h"
 #include "commands/defrem.h"
 #include "commands/extension.h"
 #include "postgres_fdw.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/varlena.h"
 
@@ -167,21 +169,23 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
 			 * a choice since we can't see the old mapping when validating an
 			 * alter.
 			 */
-			if (!superuser() && !pw_required)
+			if (!superuser() && !pw_required &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-						 errmsg("password_required=false is superuser-only"),
-						 errhint("User mappings with the password_required option set to false may only be created or modified by the superuser")));
+						 errmsg("password_required=false requires superuser or pg_network_security privilege"),
+						 errhint("User mappings with the password_required option set to false may only be created or modified by the superuser or pg_network_security")));
 		}
 		else if (strcmp(def->defname, "sslcert") == 0 ||
 				 strcmp(def->defname, "sslkey") == 0)
 		{
 			/* similarly for sslcert / sslkey on user mapping */
-			if (catalog == UserMappingRelationId && !superuser())
+			if (catalog == UserMappingRelationId && !superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-						 errmsg("sslcert and sslkey are superuser-only"),
-						 errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser")));
+						 errmsg("sslcert and sslkey require superuser or pg_network_security privilege"),
+						 errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser or pg_network_security")));
 		}
 	}
 
diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 103c3ed21c..e2d99fc07c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -593,6 +593,12 @@ DROP ROLE doomed_role;
        event triggers and tablespaces.
        </entry>
       </row>
+      <row>
+       <entry>pg_network_security</entry>
+       <entry>Allow creating, altering and dropping foreign servers and foreign
+       data wrappers and connecting to foreign servers without a password.
+       </entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 50bafae58e..1316a6e36c 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -4362,8 +4362,9 @@ pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid,
 
 	Form_pg_foreign_data_wrapper fdwForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/* Bypass permission checks for superusers and pg_network_security */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return mask;
 
 	/*
@@ -4424,8 +4425,12 @@ pg_foreign_server_aclmask(Oid srv_oid, Oid roleid,
 
 	Form_pg_foreign_server srvForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/*
+	 * Bypass permission checks for superusers and members of the
+	 * pg_network_security role
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return mask;
 
 	/*
@@ -5170,8 +5175,12 @@ pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(FOREIGNDATAWRAPPEROID, ObjectIdGetDatum(srv_oid));
@@ -5197,8 +5206,12 @@ pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(FOREIGNSERVEROID, ObjectIdGetDatum(srv_oid));
@@ -5372,8 +5385,12 @@ pg_publication_ownercheck(Oid pub_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(PUBLICATIONOID, ObjectIdGetDatum(pub_oid));
@@ -5398,8 +5415,12 @@ pg_subscription_ownercheck(Oid sub_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(SUBSCRIPTIONOID, ObjectIdGetDatum(sub_oid));
diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c
index bc36311d38..711472e972 100644
--- a/src/backend/commands/foreigncmds.c
+++ b/src/backend/commands/foreigncmds.c
@@ -21,6 +21,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid_d.h"
 #include "catalog/pg_foreign_data_wrapper.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_foreign_table.h"
@@ -214,21 +215,29 @@ AlterForeignDataWrapperOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerI
 
 	form = (Form_pg_foreign_data_wrapper) GETSTRUCT(tup);
 
-	/* Must be a superuser to change a FDW owner */
-	if (!superuser())
+	/*
+	 * Must be a superuser or a member of the pg_network_security role to
+	 * change a FDW owner
+	 */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of foreign-data wrapper \"%s\"",
 						NameStr(form->fdwname)),
-				 errhint("Must be superuser to change owner of a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security role to change owner of a foreign-data wrapper.")));
 
-	/* New owner must also be a superuser */
-	if (!superuser_arg(newOwnerId))
+	/*
+	 * New owner must also be a superuser or a member of the
+	 * pg_network_security role
+	 */
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of foreign-data wrapper \"%s\"",
 						NameStr(form->fdwname)),
-				 errhint("The owner of a foreign-data wrapper must be a superuser.")));
+				 errhint("The owner of a foreign-data wrapper must be a superuser or member of pg_network_security role.")));
 
 	if (form->fdwowner != newOwnerId)
 	{
@@ -357,8 +366,9 @@ AlterForeignServerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 
 			srvId = form->oid;
 
-			/* Must be owner */
-			if (!pg_foreign_server_ownercheck(srvId, GetUserId()))
+			/* Must be owner or a member of the pg_network_security role */
+			if (!pg_foreign_server_ownercheck(srvId, GetUserId()) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_FOREIGN_SERVER,
 							   NameStr(form->srvname));
 
@@ -577,13 +587,14 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
 
 	rel = table_open(ForeignDataWrapperRelationId, RowExclusiveLock);
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_network_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create foreign-data wrapper \"%s\"",
 						stmt->fdwname),
-				 errhint("Must be superuser to create a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security to create a foreign-data wrapper.")));
 
 	/* For now the owner cannot be specified on create. Use effective user ID. */
 	ownerId = GetUserId();
@@ -694,13 +705,14 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt)
 
 	rel = table_open(ForeignDataWrapperRelationId, RowExclusiveLock);
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_network_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to alter foreign-data wrapper \"%s\"",
 						stmt->fdwname),
-				 errhint("Must be superuser to alter a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security to alter a foreign-data wrapper.")));
 
 	tp = SearchSysCacheCopy1(FOREIGNDATAWRAPPERNAME,
 							 CStringGetDatum(stmt->fdwname));
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 33d5b637a1..6fff059699 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -89,5 +89,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9278', oid_symbol => 'ROLE_PG_NETWORK_SECURITY',
+  rolname => 'pg_network_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/foreign_data.out b/src/test/regress/expected/foreign_data.out
index 5385f98a0f..a4f7ee9af4 100644
--- a/src/test/regress/expected/foreign_data.out
+++ b/src/test/regress/expected/foreign_data.out
@@ -77,7 +77,7 @@ DROP FOREIGN DATA WRAPPER foo;
 SET ROLE regress_test_role;
 CREATE FOREIGN DATA WRAPPER foo; -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foo"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 RESET ROLE;
 CREATE FOREIGN DATA WRAPPER foo VALIDATOR postgresql_fdw_validator;
 \dew+
@@ -154,7 +154,7 @@ ERROR:  option "b" provided more than once
 SET ROLE regress_test_role;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 SET ROLE regress_test_role_super;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
 \dew+
@@ -168,13 +168,13 @@ ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
 
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role;  -- ERROR
 ERROR:  permission denied to change owner of foreign-data wrapper "foo"
-HINT:  The owner of a foreign-data wrapper must be a superuser.
+HINT:  The owner of a foreign-data wrapper must be a superuser or member of pg_network_security role.
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role_super;
 ALTER ROLE regress_test_role_super NOSUPERUSER;
 SET ROLE regress_test_role_super;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD e '6');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 RESET ROLE;
 \dew+
                                                         List of foreign-data wrappers
@@ -1185,13 +1185,13 @@ WARNING:  changing the foreign-data wrapper validator can cause the options for
 SET ROLE regress_unprivileged_role;
 CREATE FOREIGN DATA WRAPPER foobar;                             -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foobar"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (gotcha 'true');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_unprivileged_role; -- ERROR
 ERROR:  permission denied to change owner of foreign-data wrapper "foo"
-HINT:  Must be superuser to change owner of a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security role to change owner of a foreign-data wrapper.
 DROP FOREIGN DATA WRAPPER foo;                                  -- ERROR
 ERROR:  must be owner of foreign-data wrapper foo
 GRANT USAGE ON FOREIGN DATA WRAPPER foo TO regress_test_role;   -- ERROR
@@ -1218,10 +1218,10 @@ GRANT USAGE ON FOREIGN DATA WRAPPER foo TO regress_unprivileged_role WITH GRANT
 SET ROLE regress_unprivileged_role;
 CREATE FOREIGN DATA WRAPPER foobar;                             -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foobar"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (gotcha 'true');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 DROP FOREIGN DATA WRAPPER foo;                                  -- ERROR
 ERROR:  must be owner of foreign-data wrapper foo
 GRANT USAGE ON FOREIGN DATA WRAPPER postgresql TO regress_test_role; -- WARNING
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 9664276359..adb6813194 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -14,6 +14,7 @@ DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
+DROP ROLE IF EXISTS regress_priv_user9;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -31,6 +32,7 @@ ERROR:  role "regress_priv_user5" already exists
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
+CREATE USER regress_priv_user9;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1849,6 +1851,17 @@ DROP EVENT TRIGGER user8_event_trigger_start;
 DROP EVENT TRIGGER user8_event_trigger_finish;
 DROP FUNCTION user8_event_trigger;
 RESET SESSION AUTHORIZATION;
+-- test pg_network_security authority to create foreign servers
+-- and foreign data wrappers
+GRANT pg_network_security TO regress_priv_user9;
+SET SESSION AUTHORIZATION regress_priv_user9;
+CREATE FOREIGN DATA WRAPPER user9_fdw VALIDATOR postgresql_fdw_validator;
+COMMENT ON FOREIGN DATA WRAPPER user9_fdw IS 'test comment';
+CREATE SERVER user9_server FOREIGN DATA WRAPPER user9_fdw;
+COMMENT ON SERVER user9_server IS 'test comment';
+DROP SERVER user9_server;
+DROP FOREIGN DATA WRAPPER user9_fdw;
+RESET SESSION AUTHORIZATION;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2349,8 +2362,9 @@ DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
-DROP USER regress_priv_user9; -- does not exist
-ERROR:  role "regress_priv_user9" does not exist
+DROP USER regress_priv_user9;
+DROP USER regress_priv_user10; -- does not exist
+ERROR:  role "regress_priv_user10" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index aea13448bc..3bef0b6b80 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -18,6 +18,7 @@ DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
+DROP ROLE IF EXISTS regress_priv_user9;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -34,6 +35,7 @@ CREATE USER regress_priv_user5;	-- duplicate
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
+CREATE USER regress_priv_user9;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1113,6 +1115,18 @@ DROP EVENT TRIGGER user8_event_trigger_finish;
 DROP FUNCTION user8_event_trigger;
 RESET SESSION AUTHORIZATION;
 
+-- test pg_network_security authority to create foreign servers
+-- and foreign data wrappers
+GRANT pg_network_security TO regress_priv_user9;
+SET SESSION AUTHORIZATION regress_priv_user9;
+CREATE FOREIGN DATA WRAPPER user9_fdw VALIDATOR postgresql_fdw_validator;
+COMMENT ON FOREIGN DATA WRAPPER user9_fdw IS 'test comment';
+CREATE SERVER user9_server FOREIGN DATA WRAPPER user9_fdw;
+COMMENT ON SERVER user9_server IS 'test comment';
+DROP SERVER user9_server;
+DROP FOREIGN DATA WRAPPER user9_fdw;
+RESET SESSION AUTHORIZATION;
+
 -- test default ACLs
 \c -
 
@@ -1413,7 +1427,8 @@ DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
-DROP USER regress_priv_user9; -- does not exist
+DROP USER regress_priv_user9;
+DROP USER regress_priv_user10; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

v3-0004-Add-default-role-for-database-operations.patchapplication/octet-stream; name=v3-0004-Add-default-role-for-database-operations.patch; x-unix-mode=0644Download
From 7b9985d4549dd264d1c6dea4769cc89c271c4b9e Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 29 Jun 2021 11:10:25 -0700
Subject: [PATCH v3 4/4] Add default role for database operations

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_database_security role and
delegating to it the authority to create, alter and drop most
database interal objects, though not if doing so would have network
or host security implications.
---
 doc/src/sgml/ref/alter_role.sgml              |   2 +
 doc/src/sgml/ref/create_role.sgml             |   3 +-
 src/backend/catalog/aclchk.c                  | 174 +++++++++++++-----
 src/backend/catalog/objectaddress.c           |   3 +-
 src/backend/catalog/pg_proc.c                 |  10 +-
 src/backend/commands/aggregatecmds.c          |   9 +-
 src/backend/commands/alter.c                  |  14 +-
 src/backend/commands/amcmds.c                 |   7 +-
 src/backend/commands/collationcmds.c          |   6 +-
 src/backend/commands/dbcommands.c             |  11 +-
 src/backend/commands/functioncmds.c           |  27 ++-
 src/backend/commands/opclasscmds.c            |  16 +-
 src/backend/commands/proclang.c               |   6 +-
 src/backend/commands/tablecmds.c              |   4 +-
 src/backend/commands/trigger.c                |   4 +-
 src/backend/commands/tsearchcmds.c            |  11 +-
 src/backend/commands/typecmds.c               |  11 +-
 src/backend/commands/user.c                   |  38 ++--
 src/include/catalog/pg_authid.dat             |   5 +
 src/test/regress/expected/alter_generic.out   |   2 +-
 .../regress/expected/create_function_3.out    |   4 +-
 src/test/regress/expected/privileges.out      | 102 +++++++++-
 src/test/regress/sql/privileges.sql           |  94 +++++++++-
 23 files changed, 452 insertions(+), 111 deletions(-)

diff --git a/doc/src/sgml/ref/alter_role.sgml b/doc/src/sgml/ref/alter_role.sgml
index 5aa5648ae7..a6754cb500 100644
--- a/doc/src/sgml/ref/alter_role.sgml
+++ b/doc/src/sgml/ref/alter_role.sgml
@@ -70,6 +70,8 @@ ALTER ROLE { <replaceable class="parameter">role_specification</replaceable> | A
    <link linkend="sql-revoke"><command>REVOKE</command></link> for that.)
    Attributes not mentioned in the command retain their previous settings.
    Database superusers can change any of these settings for any role.
+   Users with membership in the <literal>pg_database_security</literal> role
+   may change the <literal>BYPASSRLS</literal> setting.
    Roles having <literal>CREATEROLE</literal> privilege can change any of these
    settings except <literal>SUPERUSER</literal>, <literal>REPLICATION</literal>,
    and <literal>BYPASSRLS</literal>; but only for non-superuser and
diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml
index 9468ff162c..ce1621d48b 100644
--- a/doc/src/sgml/ref/create_role.sgml
+++ b/doc/src/sgml/ref/create_role.sgml
@@ -195,7 +195,8 @@ in sync when changing the above synopsis!
        <para>
         These clauses determine whether a role bypasses every row-level
         security (RLS) policy.  <literal>NOBYPASSRLS</literal> is the default.
-        You must be a superuser to create a new role having
+        You must be a superuser or a member of role
+        <literal>pg_database_security</literal> to create a new role having
         the <literal>BYPASSRLS</literal> attribute.
        </para>
 
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 1316a6e36c..8c43a69c6e 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -3882,9 +3882,11 @@ pg_class_aclmask_ext(Oid table_oid, Oid roleid, AclMode mask,
 		mask &= ~(ACL_INSERT | ACL_UPDATE | ACL_DELETE | ACL_TRUNCATE | ACL_USAGE);
 
 	/*
-	 * Otherwise, superusers bypass all permission-checking.
+	 * Otherwise, superusers and members of the pg_database_security role bypass all
+	 * permission-checking.
 	 */
-	if (superuser_arg(roleid))
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 	{
 		ReleaseSysCache(tuple);
 		return mask;
@@ -3963,8 +3965,12 @@ pg_database_aclmask(Oid db_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4017,8 +4023,12 @@ pg_proc_aclmask(Oid proc_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4071,8 +4081,12 @@ pg_language_aclmask(Oid lang_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4138,8 +4152,12 @@ pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4207,8 +4225,12 @@ pg_namespace_aclmask(Oid nsp_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4489,8 +4511,12 @@ pg_type_aclmask(Oid type_oid, Oid roleid, AclMode mask, AclMaskHow how)
 
 	Form_pg_type typeForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/*
+	 * Bypass permission checks for superusers and members of the
+	 * pg_database_security role
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4834,8 +4860,12 @@ pg_class_ownercheck(Oid class_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(class_oid));
@@ -4860,8 +4890,12 @@ pg_type_ownercheck(Oid type_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(type_oid));
@@ -4886,8 +4920,12 @@ pg_oper_ownercheck(Oid oper_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(OPEROID, ObjectIdGetDatum(oper_oid));
@@ -4912,8 +4950,12 @@ pg_proc_ownercheck(Oid proc_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(proc_oid));
@@ -4938,8 +4980,12 @@ pg_language_ownercheck(Oid lan_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(LANGOID, ObjectIdGetDatum(lan_oid));
@@ -4970,8 +5016,12 @@ pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	/* There's no syscache for pg_largeobject_metadata */
@@ -5010,8 +5060,12 @@ pg_namespace_ownercheck(Oid nsp_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(NAMESPACEOID, ObjectIdGetDatum(nsp_oid));
@@ -5067,8 +5121,12 @@ pg_opclass_ownercheck(Oid opc_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(CLAOID, ObjectIdGetDatum(opc_oid));
@@ -5094,8 +5152,12 @@ pg_opfamily_ownercheck(Oid opf_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(OPFAMILYOID, ObjectIdGetDatum(opf_oid));
@@ -5121,8 +5183,12 @@ pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TSDICTOID, ObjectIdGetDatum(dict_oid));
@@ -5148,8 +5214,12 @@ pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TSCONFIGOID, ObjectIdGetDatum(cfg_oid));
@@ -5265,8 +5335,12 @@ pg_database_ownercheck(Oid db_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			dba;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(DATABASEOID, ObjectIdGetDatum(db_oid));
@@ -5291,8 +5365,12 @@ pg_collation_ownercheck(Oid coll_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(COLLOID, ObjectIdGetDatum(coll_oid));
@@ -5317,8 +5395,12 @@ pg_conversion_ownercheck(Oid conv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(CONVOID, ObjectIdGetDatum(conv_oid));
@@ -5445,8 +5527,12 @@ pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(STATEXTOID, ObjectIdGetDatum(stat_oid));
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 9882e549c4..1a3c50ba56 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -2564,7 +2564,8 @@ check_object_ownership(Oid roleid, ObjectType objtype, ObjectAddress address,
 		case OBJECT_TSTEMPLATE:
 		case OBJECT_ACCESS_METHOD:
 			/* We treat these object types as being owned by superusers */
-			if (!superuser_arg(roleid))
+			if (!superuser_arg(roleid) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("must be superuser")));
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 1454d2fb67..874f4025b1 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -21,6 +21,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
@@ -694,9 +695,16 @@ ProcedureCreate(const char *procedureName,
 			set_items = (ArrayType *) DatumGetPointer(proconfig);
 			if (set_items)		/* Need a new GUC nesting level */
 			{
+				GucContext	gc;
+
 				save_nestlevel = NewGUCNestLevel();
+				if (superuser() ||
+					has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
+					gc = PGC_SUSET;
+				else
+					gc = PGC_USERSET;
 				ProcessGUCArray(set_items,
-								(superuser() ? PGC_SUSET : PGC_USERSET),
+								gc,
 								PGC_S_SESSION,
 								GUC_ACTION_SAVE);
 			}
diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c
index 046cf2df08..f59ab758fd 100644
--- a/src/backend/commands/aggregatecmds.c
+++ b/src/backend/commands/aggregatecmds.c
@@ -25,6 +25,7 @@
 #include "access/htup_details.h"
 #include "catalog/dependency.h"
 #include "catalog/pg_aggregate.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "commands/alter.h"
@@ -342,7 +343,9 @@ DefineAggregate(ParseState *pstate,
 	if (transTypeType == TYPTYPE_PSEUDO &&
 		!IsPolymorphicType(transTypeId))
 	{
-		if (transTypeId == INTERNALOID && superuser())
+		if (transTypeId == INTERNALOID &&
+			(superuser() ||
+			 has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))
 			 /* okay */ ;
 		else
 			ereport(ERROR,
@@ -383,7 +386,9 @@ DefineAggregate(ParseState *pstate,
 		if (mtransTypeType == TYPTYPE_PSEUDO &&
 			!IsPolymorphicType(mtransTypeId))
 		{
-			if (mtransTypeId == INTERNALOID && superuser())
+			if (mtransTypeId == INTERNALOID &&
+				(superuser() ||
+				 has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))
 				 /* okay */ ;
 			else
 				ereport(ERROR,
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 29249498a9..01cbe45489 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -22,6 +22,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_conversion.h"
 #include "catalog/pg_event_trigger.h"
@@ -206,13 +207,14 @@ AlterObjectRename_internal(Relation rel, Oid objectId, const char *new_name)
 		namespaceId = InvalidOid;
 
 	/* Permission checks ... superusers can always do it */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 	{
 		/* Fail if object does not have an explicit owner */
 		if (Anum_owner <= 0)
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to rename %s",
+					 errmsg("must be superuser or pg_database_security to rename %s",
 							getObjectDescriptionOids(classId, objectId))));
 
 		/* Otherwise, must be owner of the existing object */
@@ -731,7 +733,8 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
 	CheckSetNamespace(oldNspOid, nspOid);
 
 	/* Permission checks ... superusers can always do it */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 	{
 		Datum		owner;
 		Oid			ownerId;
@@ -741,7 +744,7 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
 		if (Anum_owner <= 0)
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to set schema of %s",
+					 errmsg("must be superuser or pg_database_security to set schema of %s",
 							getObjectDescriptionOids(classId, objid))));
 
 		/* Otherwise, must be owner of the existing object */
@@ -972,7 +975,8 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
 		bool	   *replaces;
 
 		/* Superusers can bypass permission checks */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		{
 			/* must be owner */
 			if (!has_privs_of_role(GetUserId(), old_ownerId))
diff --git a/src/backend/commands/amcmds.c b/src/backend/commands/amcmds.c
index 188109e474..4896fc0193 100644
--- a/src/backend/commands/amcmds.c
+++ b/src/backend/commands/amcmds.c
@@ -20,11 +20,13 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/pg_am.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "commands/defrem.h"
 #include "miscadmin.h"
 #include "parser/parse_func.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/rel.h"
@@ -54,12 +56,13 @@ CreateAccessMethod(CreateAmStmt *stmt)
 	rel = table_open(AccessMethodRelationId, RowExclusiveLock);
 
 	/* Must be super user */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create access method \"%s\"",
 						stmt->amname),
-				 errhint("Must be superuser to create an access method.")));
+				 errhint("Must be superuser or pg_database_security to create an access method.")));
 
 	/* Check if name is used */
 	amoid = GetSysCacheOid1(AMNAME, Anum_pg_am_oid,
diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c
index ebb0994db3..e487e75b0e 100644
--- a/src/backend/commands/collationcmds.c
+++ b/src/backend/commands/collationcmds.c
@@ -21,6 +21,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "commands/alter.h"
 #include "commands/collationcmds.h"
@@ -506,10 +507,11 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
 	Oid			nspid = PG_GETARG_OID(0);
 	int			ncreated = 0;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to import system collations")));
+				 errmsg("must be superuser or pg_database_security to import system collations")));
 
 	if (!SearchSysCacheExists1(NAMESPACEOID, ObjectIdGetDatum(nspid)))
 		ereport(ERROR,
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 2b159b60eb..9b1a38ffd6 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -763,7 +763,9 @@ check_encoding_locale_matches(int encoding, const char *collate, const char *cty
 #ifdef WIN32
 		  encoding == PG_UTF8 ||
 #endif
-		  (encoding == PG_SQL_ASCII && superuser())))
+		  (encoding == PG_SQL_ASCII &&
+		   (superuser() ||
+			has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))))
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				 errmsg("encoding \"%s\" does not match locale \"%s\"",
@@ -778,7 +780,9 @@ check_encoding_locale_matches(int encoding, const char *collate, const char *cty
 #ifdef WIN32
 		  encoding == PG_UTF8 ||
 #endif
-		  (encoding == PG_SQL_ASCII && superuser())))
+		  (encoding == PG_SQL_ASCII &&
+		   (superuser() ||
+			has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))))
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				 errmsg("encoding \"%s\" does not match locale \"%s\"",
@@ -1923,7 +1927,8 @@ have_createdb_privilege(void)
 	HeapTuple	utup;
 
 	/* Superusers can always do everything */
-	if (superuser())
+	if (superuser() ||
+		has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	utup = SearchSysCache1(AUTHOID, ObjectIdGetDatum(GetUserId()));
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 736d04780a..ac39ced1c7 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -41,6 +41,7 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/pg_aggregate.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_cast.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
@@ -712,10 +713,11 @@ interpret_func_support(DefElem *defel)
 	 * you be superuser to specify a support function, so privilege on the
 	 * support function is moot.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to specify a support function")));
+				 errmsg("must be superuser or pg_database_security to specify a support function")));
 
 	return procOid;
 }
@@ -1143,7 +1145,8 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
 	else
 	{
 		/* if untrusted language, must be superuser */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			aclcheck_error(ACLCHECK_NO_PRIV, OBJECT_LANGUAGE,
 						   NameStr(languageStruct->lanname));
 	}
@@ -1157,10 +1160,11 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
 	 * leakproof functions can see tuples which have not yet been filtered out
 	 * by security barrier views or row-level security policies.
 	 */
-	if (isLeakProof && !superuser())
+	if (isLeakProof && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("only superuser can define a leakproof function")));
+				 errmsg("only superuser or pg_database_security can define a leakproof function")));
 
 	if (transformDefElem)
 	{
@@ -1441,10 +1445,11 @@ AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt)
 	if (leakproof_item)
 	{
 		procForm->proleakproof = intVal(leakproof_item->arg);
-		if (procForm->proleakproof && !superuser())
+		if (procForm->proleakproof && !superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("only superuser can define a leakproof function")));
+					 errmsg("only superuser or pg_database_security can define a leakproof function")));
 	}
 	if (cost_item)
 	{
@@ -1685,10 +1690,11 @@ CreateCast(CreateCastStmt *stmt)
 		 * Must be superuser to create binary-compatible casts, since
 		 * erroneous casts can easily crash the backend.
 		 */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to create a cast WITHOUT FUNCTION")));
+					 errmsg("must be superuser or pg_database_security to create a cast WITHOUT FUNCTION")));
 
 		/*
 		 * Also, insist that the types match as to size, alignment, and
@@ -2148,7 +2154,8 @@ ExecuteDoStmt(DoStmt *stmt, bool atomic)
 	else
 	{
 		/* if untrusted language, must be superuser */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			aclcheck_error(ACLCHECK_NO_PRIV, OBJECT_LANGUAGE,
 						   NameStr(languageStruct->lanname));
 	}
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index fad39e2b75..d3f7412ba2 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -30,6 +30,7 @@
 #include "catalog/pg_am.h"
 #include "catalog/pg_amop.h"
 #include "catalog/pg_amproc.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
 #include "catalog/pg_operator.h"
@@ -405,10 +406,11 @@ DefineOpClass(CreateOpClassStmt *stmt)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create an operator class")));
+				 errmsg("must be superuser or pg_database_security to create an operator class")));
 
 	/* Look up the datatype */
 	typeoid = typenameTypeId(NULL, stmt->datatype);
@@ -786,10 +788,11 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
 	 * Currently, we require superuser privileges to create an opfamily. See
 	 * comments in DefineOpClass.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create an operator family")));
+				 errmsg("must be superuser or pg_database_security to create an operator family")));
 
 	/* Insert pg_opfamily catalog entry */
 	return CreateOpFamily(stmt->amname, opfname, namespaceoid, amoid);
@@ -846,10 +849,11 @@ AlterOpFamily(AlterOpFamilyStmt *stmt)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to alter an operator family")));
+				 errmsg("must be superuser or pg_database_security to alter an operator family")));
 
 	/*
 	 * ADD and DROP cases need separate code from here on down.
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index 81598d3e08..1d40425deb 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -18,6 +18,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
@@ -62,10 +63,11 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
 	/*
 	 * Check permission
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create custom procedural language")));
+				 errmsg("must be superuser or pg_database_security to create custom procedural language")));
 
 	/*
 	 * Lookup the PL handler function and check that it is of the expected
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 97a9725df7..308829fdf8 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -33,6 +33,7 @@
 #include "catalog/objectaccess.h"
 #include "catalog/partition.h"
 #include "catalog/pg_am.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_depend.h"
@@ -13227,7 +13228,8 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lock
 		if (!recursing)
 		{
 			/* Superusers can always do it */
-			if (!superuser())
+			if (!superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			{
 				Oid			namespaceOid = tuple_class->relnamespace;
 				AclResult	aclresult;
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 07c73f39de..7a46dcdd75 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -26,6 +26,7 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/partition.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_proc.h"
@@ -1574,7 +1575,8 @@ EnableDisableTrigger(Relation rel, const char *tgname,
 			/* system trigger ... ok to process? */
 			if (skip_system)
 				continue;
-			if (!superuser())
+			if (!superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("permission denied: \"%s\" is a system trigger",
diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c
index e06fb32b3d..c94e651fc9 100644
--- a/src/backend/commands/tsearchcmds.c
+++ b/src/backend/commands/tsearchcmds.c
@@ -25,6 +25,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_ts_config.h"
@@ -188,10 +189,11 @@ DefineTSParser(List *names, List *parameters)
 	Oid			namespaceoid;
 	ObjectAddress address;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create text search parsers")));
+				 errmsg("must be superuser or pg_database_security to create text search parsers")));
 
 	prsRel = table_open(TSParserRelationId, RowExclusiveLock);
 
@@ -695,10 +697,11 @@ DefineTSTemplate(List *names, List *parameters)
 	char	   *tmplname;
 	ObjectAddress address;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create text search templates")));
+				 errmsg("must be superuser or pg_database_security to create text search templates")));
 
 	/* Convert list of names to a name and namespace */
 	namespaceoid = QualifiedNameGetCreationNamespace(names, &tmplname);
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 58ec65c6af..3c89214fe5 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -211,10 +211,11 @@ DefineType(ParseState *pstate, List *names, List *parameters)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create a base type")));
+				 errmsg("must be superuser or pg_database_security to create a base type")));
 
 	/* Convert list of names to a name and namespace */
 	typeNamespace = QualifiedNameGetCreationNamespace(names, &typeName);
@@ -3756,7 +3757,8 @@ AlterTypeOwner(List *names, Oid newOwnerId, ObjectType objecttype)
 	if (typTup->typowner != newOwnerId)
 	{
 		/* Superusers can always do it */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		{
 			/* Otherwise, must be owner of the existing object */
 			if (!pg_type_ownercheck(typTup->oid, GetUserId()))
@@ -4288,7 +4290,8 @@ AlterType(AlterTypeStmt *stmt)
 	 */
 	if (requireSuper)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to alter a type")));
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 65bb733958..50b60b6bef 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -295,17 +295,19 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 	}
 	else if (isreplication)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to create replication users")));
+					 errmsg("must be superuser or member of role pg_database_security to create replication users")));
 	}
 	else if (bypassrls)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to create bypassrls users")));
+					 errmsg("must be superuser or member of role pg_database_security to create bypassrls users")));
 	}
 	else
 	{
@@ -709,10 +711,10 @@ AlterRole(AlterRoleStmt *stmt)
 	roleid = authform->oid;
 
 	/*
-	 * To mess with a superuser or replication role in any way you gotta be
-	 * superuser.  We also insist on superuser to change the BYPASSRLS
-	 * property.  Otherwise, if you don't have createrole, you're only allowed
-	 * to change your own password.
+	 * To mess with a superuser in any way you gotta be superuser.  We also
+	 * insist on superuser or pg_database_security to change the REPLICATION
+	 * and BYPASSRLS properties.  Otherwise, if you don't have createrole,
+	 * you're only allowed to change your own password.
 	 */
 	if (authform->rolsuper || issuper >= 0)
 	{
@@ -723,17 +725,19 @@ AlterRole(AlterRoleStmt *stmt)
 	}
 	else if (authform->rolreplication || isreplication >= 0)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to alter replication roles or change replication attribute")));
 	}
 	else if (bypassrls >= 0)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to change bypassrls attribute")));
+					 errmsg("must be superuser or member of role pg_database_security to change bypassrls attribute")));
 	}
 	else if (!have_createrole_privilege())
 	{
@@ -976,11 +980,12 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
 
 	if (!stmt->role && !stmt->database)
 	{
-		/* Must be superuser to alter settings globally. */
-		if (!superuser())
+		/* Must be superuser or pg_database_security to alter settings globally. */
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to alter settings globally")));
+					 errmsg("must be superuser or member of role pg_database_security to alter settings globally")));
 	}
 
 	AlterSetting(databaseid, roleid, stmt->setstmt);
@@ -1254,10 +1259,11 @@ RenameRole(const char *oldname, const char *newname)
 	 */
 	if (((Form_pg_authid) GETSTRUCT(oldtuple))->rolsuper)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to rename superusers")));
+					 errmsg("must be superuser or member of role pg_database_security to rename superusers")));
 	}
 	else
 	{
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 6fff059699..7c9e407b41 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -94,5 +94,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9279', oid_symbol => 'ROLE_PG_DATABASE_SECURITY',
+  rolname => 'pg_database_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/alter_generic.out b/src/test/regress/expected/alter_generic.out
index 505eb7ede5..64e1ab571b 100644
--- a/src/test/regress/expected/alter_generic.out
+++ b/src/test/regress/expected/alter_generic.out
@@ -366,7 +366,7 @@ CREATE ROLE regress_alter_generic_user5 NOSUPERUSER;
 CREATE OPERATOR FAMILY alt_opf5 USING btree;
 SET ROLE regress_alter_generic_user5;
 ALTER OPERATOR FAMILY alt_opf5 USING btree ADD OPERATOR 1 < (int4, int2), FUNCTION 1 btint42cmp(int4, int2);
-ERROR:  must be superuser to alter an operator family
+ERROR:  must be superuser or pg_database_security to alter an operator family
 RESET ROLE;
 ERROR:  current transaction is aborted, commands ignored until end of transaction block
 DROP OPERATOR FAMILY alt_opf5 USING btree;
diff --git a/src/test/regress/expected/create_function_3.out b/src/test/regress/expected/create_function_3.out
index 5955859bb5..33a5b689c7 100644
--- a/src/test/regress/expected/create_function_3.out
+++ b/src/test/regress/expected/create_function_3.out
@@ -166,10 +166,10 @@ SET SESSION AUTHORIZATION regress_unpriv_user;
 SET search_path TO temp_func_test, public;
 ALTER FUNCTION functest_E_1(int) NOT LEAKPROOF;
 ALTER FUNCTION functest_E_2(int) LEAKPROOF;
-ERROR:  only superuser can define a leakproof function
+ERROR:  only superuser or pg_database_security can define a leakproof function
 CREATE FUNCTION functest_E_3(int) RETURNS bool LANGUAGE 'sql'
        LEAKPROOF AS 'SELECT $1 < 200';	-- fail
-ERROR:  only superuser can define a leakproof function
+ERROR:  only superuser or pg_database_security can define a leakproof function
 RESET SESSION AUTHORIZATION;
 --
 -- CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index adb6813194..6fc395489b 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -15,6 +15,7 @@ DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
+DROP ROLE IF EXISTS regress_priv_user10;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -33,6 +34,7 @@ CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
+CREATE USER regress_priv_user10;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1862,6 +1864,101 @@ COMMENT ON SERVER user9_server IS 'test comment';
 DROP SERVER user9_server;
 DROP FOREIGN DATA WRAPPER user9_fdw;
 RESET SESSION AUTHORIZATION;
+-- test pg_database_security authority over numerous database objects
+GRANT pg_database_security TO regress_priv_user10;
+SET SESSION AUTHORIZATION regress_priv_user10;
+CREATE ACCESS METHOD user10_am TYPE INDEX HANDLER gisthandler;
+CREATE CAST (text AS json) WITHOUT FUNCTION;
+CREATE DATABASE user10_db;
+GRANT ALL ON DATABASE user10_db TO regress_priv_user10;
+CREATE FUNCTION user10_event_trigger_func() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user10_event_trigger ON ddl_command_start -- no
+   EXECUTE PROCEDURE user10_event_trigger_func();
+ERROR:  permission denied to create event trigger "user10_event_trigger"
+HINT:  Must be superuser or a member of the pg_host_security role to create an event trigger.
+CREATE FOREIGN DATA WRAPPER user10_fdw VALIDATOR postgresql_fdw_validator; -- no
+ERROR:  permission denied to create foreign-data wrapper "user10_fdw"
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
+CREATE FUNCTION user10_secdef_func(boolean) RETURNS text
+  AS 'select $1::text;'
+  LANGUAGE sql SECURITY DEFINER;
+CREATE INDEX user10_index ON pg_catalog.pg_class(oid); -- no
+ERROR:  permission denied: "pg_class" is a system catalog
+CREATE LANGUAGE user10_lang HANDLER plpgsql_call_handler;
+CREATE OPERATOR CLASS user10_ops
+    FOR TYPE box USING gist AS
+    OPERATOR 1  <<,
+    OPERATOR 2  &<,
+    OPERATOR 3  &&,
+    OPERATOR 4  &>,
+    OPERATOR 5  >>,
+    OPERATOR 6  ~=,
+    OPERATOR 7  @>,
+    OPERATOR 8  <@,
+    OPERATOR 9  &<|,
+    OPERATOR 10 <<|,
+    OPERATOR 11 |>>,
+    OPERATOR 12 |&>,
+    FUNCTION 1  gist_box_consistent(internal, box, smallint, oid, internal),
+    FUNCTION 2  gist_box_union(internal, internal),
+    FUNCTION 5  gist_box_penalty(internal, internal, internal),
+    FUNCTION 6  gist_box_picksplit(internal, internal),
+    FUNCTION 7  gist_box_same(box, box, internal);
+CREATE TABLE user10_tbl (id integer, str text);
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION user10_publication FOR TABLE user10_tbl;
+RESET client_min_messages;
+CREATE RULE user10_rule_ins AS ON INSERT TO pg_catalog.pg_class -- no
+  DO INSTEAD DELETE FROM pg_catalog.pg_am;
+ERROR:  permission denied: "pg_class" is a system catalog
+CREATE SCHEMA user10_schema;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user10_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false); -- no
+ERROR:  must be superuser or a member of the pg_logical_replication role to create subscriptions
+RESET client_min_messages;
+CREATE STATISTICS user10_stats ON id, str FROM user10_tbl;
+CREATE TEXT SEARCH CONFIGURATION user10_tsconfig (COPY=english);
+CREATE TEXT SEARCH DICTIONARY user10_tsdict (Template=ispell, DictFile=ispell_sample, AffFile=ispell_sample);
+CREATE TEXT SEARCH PARSER user10_tsparser
+    (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE user10_tstemplate (lexize=dsimple_lexize);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION user10_trigger_func() RETURNS trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_trigger';
+END
+$$ LANGUAGE PLPGSQL;
+CREATE TRIGGER user10_trigger
+    BEFORE INSERT OR UPDATE ON user10_tbl
+    FOR EACH ROW
+    EXECUTE PROCEDURE user10_trigger_func();
+CREATE TYPE user10_type;
+CREATE VIEW user10_view AS SELECT * FROM user10_tbl;
+DROP ACCESS METHOD user10_am;
+DROP CAST (text AS json);
+REVOKE ALL ON DATABASE user10_db FROM regress_priv_user10;
+DROP DATABASE user10_db;
+DROP FUNCTION user10_event_trigger_func();
+DROP FUNCTION user10_secdef_func(boolean);
+DROP LANGUAGE user10_lang;
+DROP OPERATOR CLASS user10_ops USING gist;
+DROP OPERATOR FAMILY user10_ops USING gist;
+DROP PUBLICATION user10_publication;
+DROP SCHEMA user10_schema;
+DROP STATISTICS user10_stats;
+DROP TEXT SEARCH CONFIGURATION user10_tsconfig;
+DROP TEXT SEARCH DICTIONARY user10_tsdict;
+DROP TRIGGER user10_trigger ON user10_tbl;
+DROP FUNCTION user10_trigger_func();
+DROP TYPE user10_type;
+DROP VIEW user10_view;
+DROP TABLE user10_tbl;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2363,8 +2460,9 @@ DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
-DROP USER regress_priv_user10; -- does not exist
-ERROR:  role "regress_priv_user10" does not exist
+DROP USER regress_priv_user10;
+DROP USER regress_priv_user11; -- does not exist
+ERROR:  role "regress_priv_user11" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 3bef0b6b80..bda5350ab0 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -19,6 +19,7 @@ DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
+DROP ROLE IF EXISTS regress_priv_user10;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -36,6 +37,7 @@ CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
+CREATE USER regress_priv_user10;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1127,6 +1129,95 @@ DROP SERVER user9_server;
 DROP FOREIGN DATA WRAPPER user9_fdw;
 RESET SESSION AUTHORIZATION;
 
+-- test pg_database_security authority over numerous database objects
+GRANT pg_database_security TO regress_priv_user10;
+SET SESSION AUTHORIZATION regress_priv_user10;
+CREATE ACCESS METHOD user10_am TYPE INDEX HANDLER gisthandler;
+CREATE CAST (text AS json) WITHOUT FUNCTION;
+CREATE DATABASE user10_db;
+GRANT ALL ON DATABASE user10_db TO regress_priv_user10;
+CREATE FUNCTION user10_event_trigger_func() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user10_event_trigger ON ddl_command_start -- no
+   EXECUTE PROCEDURE user10_event_trigger_func();
+CREATE FOREIGN DATA WRAPPER user10_fdw VALIDATOR postgresql_fdw_validator; -- no
+CREATE FUNCTION user10_secdef_func(boolean) RETURNS text
+  AS 'select $1::text;'
+  LANGUAGE sql SECURITY DEFINER;
+CREATE INDEX user10_index ON pg_catalog.pg_class(oid); -- no
+CREATE LANGUAGE user10_lang HANDLER plpgsql_call_handler;
+CREATE OPERATOR CLASS user10_ops
+    FOR TYPE box USING gist AS
+    OPERATOR 1  <<,
+    OPERATOR 2  &<,
+    OPERATOR 3  &&,
+    OPERATOR 4  &>,
+    OPERATOR 5  >>,
+    OPERATOR 6  ~=,
+    OPERATOR 7  @>,
+    OPERATOR 8  <@,
+    OPERATOR 9  &<|,
+    OPERATOR 10 <<|,
+    OPERATOR 11 |>>,
+    OPERATOR 12 |&>,
+    FUNCTION 1  gist_box_consistent(internal, box, smallint, oid, internal),
+    FUNCTION 2  gist_box_union(internal, internal),
+    FUNCTION 5  gist_box_penalty(internal, internal, internal),
+    FUNCTION 6  gist_box_picksplit(internal, internal),
+    FUNCTION 7  gist_box_same(box, box, internal);
+CREATE TABLE user10_tbl (id integer, str text);
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION user10_publication FOR TABLE user10_tbl;
+RESET client_min_messages;
+CREATE RULE user10_rule_ins AS ON INSERT TO pg_catalog.pg_class -- no
+  DO INSTEAD DELETE FROM pg_catalog.pg_am;
+CREATE SCHEMA user10_schema;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user10_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false); -- no
+RESET client_min_messages;
+CREATE STATISTICS user10_stats ON id, str FROM user10_tbl;
+CREATE TEXT SEARCH CONFIGURATION user10_tsconfig (COPY=english);
+CREATE TEXT SEARCH DICTIONARY user10_tsdict (Template=ispell, DictFile=ispell_sample, AffFile=ispell_sample);
+CREATE TEXT SEARCH PARSER user10_tsparser
+    (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE user10_tstemplate (lexize=dsimple_lexize);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION user10_trigger_func() RETURNS trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_trigger';
+END
+$$ LANGUAGE PLPGSQL;
+CREATE TRIGGER user10_trigger
+    BEFORE INSERT OR UPDATE ON user10_tbl
+    FOR EACH ROW
+    EXECUTE PROCEDURE user10_trigger_func();
+CREATE TYPE user10_type;
+CREATE VIEW user10_view AS SELECT * FROM user10_tbl;
+DROP ACCESS METHOD user10_am;
+DROP CAST (text AS json);
+REVOKE ALL ON DATABASE user10_db FROM regress_priv_user10;
+DROP DATABASE user10_db;
+DROP FUNCTION user10_event_trigger_func();
+DROP FUNCTION user10_secdef_func(boolean);
+DROP LANGUAGE user10_lang;
+DROP OPERATOR CLASS user10_ops USING gist;
+DROP OPERATOR FAMILY user10_ops USING gist;
+DROP PUBLICATION user10_publication;
+DROP SCHEMA user10_schema;
+DROP STATISTICS user10_stats;
+DROP TEXT SEARCH CONFIGURATION user10_tsconfig;
+DROP TEXT SEARCH DICTIONARY user10_tsdict;
+DROP TRIGGER user10_trigger ON user10_tbl;
+DROP FUNCTION user10_trigger_func();
+DROP TYPE user10_type;
+DROP VIEW user10_view;
+DROP TABLE user10_tbl;
+
 -- test default ACLs
 \c -
 
@@ -1428,7 +1519,8 @@ DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
-DROP USER regress_priv_user10; -- does not exist
+DROP USER regress_priv_user10;
+DROP USER regress_priv_user11; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

#38Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Mark Dilger (#37)
5 attachment(s)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jun 29, 2021, at 6:25 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

Please find attached a new set of patches.

And again, this time attaching a fifth patch which includes the work to allow users who belong to the right security role to SET and ALTER SYSTEM SET variables without being a superuser.

Attachments:

v4-0001-Add-default-role-for-managing-logical-replication.patchapplication/octet-stream; name=v4-0001-Add-default-role-for-managing-logical-replication.patch; x-unix-mode=0644Download
From 6dbdd9cc9b2b41f54c6b0e96d267cb26e8fd13b0 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Wed, 23 Jun 2021 16:03:49 -0700
Subject: [PATCH v4 1/5] Add default role for managing logical replication

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_logical_replication role and
delegating to it the authority to add, alter, or drop publications
and subscriptions on any table regardless of table ownership, while
respecting table privileges in table sync and apply workers.

With this change, by creating a user in role pg_logical_replication,
only giving that user INSERT, UPDATE, DELETE, or TRUNCATE privileges
as appropriate on the intended tables, and having that user rather
than a superuser create a subscription, one may prevent the
replication of unwanted DML on these tables as well as the
replication of any DML to any other tables.  The prior situation
prevented new tables added to a publication from being replicated so
long as a ALTER SUBSCRIPTION ... REFRESH PUBLICATION was avoided,
but that has two deficiencies.  First, there is a race condition
between when the administrator on the subscriber side checks the
list of tables being published on the publication side and when the
subscription is created.  Second, all DML on the subscribed tables
was replicated, whereas now the administrator on the subscriber side
can restrict, for example, to only accept INSERTs.

The use of these new restrictions on logical replication will likely
result in an increase of field reports of subscriptions going into
an infinite loop of failing to apply, aborting, restarting, and
retrying.  Loops of that kind are already possible for other kinds
of errors, such as unique violations on the subscriber side.  As
such, this commit leaves the problem of resolving stuck
subscriptions for another day.
---
 doc/src/sgml/ref/create_role.sgml             |   7 +-
 doc/src/sgml/user-manag.sgml                  |  13 +
 src/backend/commands/publicationcmds.c        |  27 +-
 src/backend/commands/subscriptioncmds.c       |  26 +-
 src/backend/replication/logical/tablesync.c   |  13 +
 src/backend/replication/logical/worker.c      |  25 ++
 src/include/catalog/pg_authid.dat             |   5 +
 src/test/regress/expected/subscription.out    |   4 +-
 .../subscription/t/021_priv_escalation.pl     | 330 ++++++++++++++++++
 9 files changed, 429 insertions(+), 21 deletions(-)
 create mode 100644 src/test/subscription/t/021_priv_escalation.pl

diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml
index b6a4ea1f72..9468ff162c 100644
--- a/doc/src/sgml/ref/create_role.sgml
+++ b/doc/src/sgml/ref/create_role.sgml
@@ -174,9 +174,10 @@ in sync when changing the above synopsis!
        <para>
         These clauses determine whether a role is a replication role.  A role
         must have this attribute (or be a superuser) in order to be able to
-        connect to the server in replication mode (physical or logical
-        replication) and in order to be able to create or drop replication
-        slots.
+        connect to the server in physical replication mode.  Roles with this
+        attribute, along with the <literal>pg_logical_replication</literal>
+        role, can connect to the server in logical replication mode and can
+        create or drop replication slots. 
         A role having the <literal>REPLICATION</literal> attribute is a very
         highly privileged role, and should only be used on roles actually
         used for replication. If not specified,
diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index fe0bdb7599..be74599b54 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -581,6 +581,12 @@ DROP ROLE doomed_role;
        <entry>Allow executing programs on the database server as the user the database runs as with
        COPY and other functions which allow executing a server-side program.</entry>
       </row>
+      <row>
+       <entry>pg_logical_replication</entry>
+       <entry>Create or drop replication slots and logical replication
+       subscriptions and publications, and connect to the server in logical
+       replication mode.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -624,6 +630,13 @@ DROP ROLE doomed_role;
   great care should be taken when granting these roles to users.
   </para>
 
+  <para> The <literal>pg_logical_replication</literal> role is intended to
+  allow administrators to enable trusted, but non-superuser, roles which are
+  able to configure logical replication and to replicate data from a
+  publication while still being subject to privilege checks on the target
+  tables into which data is replicated.
+  </para>
+
   <para>
   Care should be taken when granting these roles to ensure they are only used where
   needed and with the understanding that these roles grant access to privileged
diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c
index 95c253c8e0..681fe8adf7 100644
--- a/src/backend/commands/publicationcmds.c
+++ b/src/backend/commands/publicationcmds.c
@@ -24,6 +24,7 @@
 #include "catalog/objectaccess.h"
 #include "catalog/objectaddress.h"
 #include "catalog/partition.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_publication.h"
 #include "catalog/pg_publication_rel.h"
@@ -165,11 +166,15 @@ CreatePublication(CreatePublicationStmt *stmt)
 		aclcheck_error(aclresult, OBJECT_DATABASE,
 					   get_database_name(MyDatabaseId));
 
-	/* FOR ALL TABLES requires superuser */
-	if (stmt->for_all_tables && !superuser())
+	/*
+	 * FOR ALL TABLES requires superuser or membership in the
+	 * pg_logical_replication role
+	 */
+	if (stmt->for_all_tables && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create FOR ALL TABLES publication")));
+				 errmsg("must be superuser or a member of the pg_logical_replication role to create FOR ALL TABLES publication")));
 
 	rel = table_open(PublicationRelationId, RowExclusiveLock);
 
@@ -454,7 +459,8 @@ AlterPublication(AlterPublicationStmt *stmt)
 	pubform = (Form_pg_publication) GETSTRUCT(tup);
 
 	/* must be owner */
-	if (!pg_publication_ownercheck(pubform->oid, GetUserId()))
+	if (!pg_publication_ownercheck(pubform->oid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_PUBLICATION,
 					   stmt->pubname);
 
@@ -615,8 +621,12 @@ PublicationAddTables(Oid pubid, List *rels, bool if_not_exists,
 		Relation	rel = (Relation) lfirst(lc);
 		ObjectAddress obj;
 
-		/* Must be owner of the table or superuser. */
-		if (!pg_class_ownercheck(RelationGetRelid(rel), GetUserId()))
+		/*
+		 * Must be owner of the table or superuser or a member of the
+		 * pg_logical_replication role.
+		 */
+		if (!pg_class_ownercheck(RelationGetRelid(rel), GetUserId()) &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 			aclcheck_error(ACLCHECK_NOT_OWNER, get_relkind_objtype(rel->rd_rel->relkind),
 						   RelationGetRelationName(rel));
 
@@ -679,7 +689,8 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 	if (form->pubowner == newOwnerId)
 		return;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 	{
 		AclResult	aclresult;
 
@@ -702,7 +713,7 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("permission denied to change owner of publication \"%s\"",
 							NameStr(form->pubname)),
-					 errhint("The owner of a FOR ALL TABLES publication must be a superuser.")));
+					 errhint("The owner of a FOR ALL TABLES publication must be a superuser or a member of the pg_logical_replication role.")));
 	}
 
 	form->pubowner = newOwnerId;
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index b862e59f1d..5a1f193671 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -23,6 +23,7 @@
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
 #include "catalog/objectaddress.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_subscription.h"
 #include "catalog/pg_subscription_rel.h"
 #include "catalog/pg_type.h"
@@ -372,10 +373,11 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel)
 	if (create_slot)
 		PreventInTransactionBlock(isTopLevel, "CREATE SUBSCRIPTION ... WITH (create_slot = true)");
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create subscriptions")));
+				 errmsg("must be superuser or a member of the pg_logical_replication role to create subscriptions")));
 
 	/*
 	 * If built with appropriate switch, whine when regression-testing
@@ -781,7 +783,8 @@ AlterSubscription(AlterSubscriptionStmt *stmt, bool isTopLevel)
 	subid = form->oid;
 
 	/* must be owner */
-	if (!pg_subscription_ownercheck(subid, GetUserId()))
+	if (!pg_subscription_ownercheck(subid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   stmt->subname);
 
@@ -1098,7 +1101,8 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
 	subid = form->oid;
 
 	/* must be owner */
-	if (!pg_subscription_ownercheck(subid, GetUserId()))
+	if (!pg_subscription_ownercheck(subid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   stmt->subname);
 
@@ -1383,17 +1387,23 @@ AlterSubscriptionOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 	if (form->subowner == newOwnerId)
 		return;
 
-	if (!pg_subscription_ownercheck(form->oid, GetUserId()))
+	if (!pg_subscription_ownercheck(form->oid, GetUserId()) &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_LOGICAL_REPLICATION))
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   NameStr(form->subname));
 
-	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
+	/*
+	 * New owner must be a superuser or a member of the pg_logical_replication
+	 * role
+	 */
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_LOGICAL_REPLICATION))
+
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of subscription \"%s\"",
 						NameStr(form->subname)),
-				 errhint("The owner of a subscription must be a superuser.")));
+				 errhint("The owner of a subscription must be a superuser or a member of the pg_logical_replication role.")));
 
 	form->subowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c
index 682c107e74..9beaf59cbd 100644
--- a/src/backend/replication/logical/tablesync.c
+++ b/src/backend/replication/logical/tablesync.c
@@ -110,6 +110,7 @@
 #include "replication/origin.h"
 #include "storage/ipc.h"
 #include "storage/lmgr.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/memutils.h"
@@ -927,6 +928,7 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	char		relstate;
 	XLogRecPtr	relstate_lsn;
 	Relation	rel;
+	AclResult	aclresult;
 	WalRcvExecResult *res;
 	char		originname[NAMEDATALEN];
 	RepOriginId originid;
@@ -1045,6 +1047,17 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	 */
 	rel = table_open(MyLogicalRepWorker->relid, RowExclusiveLock);
 
+	/*
+	 * Check that our table sync worker has permission to insert into the
+	 * target table.
+	 */
+	aclresult = pg_class_aclcheck(MyLogicalRepWorker->relid, GetUserId(),
+								  ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->rd_rel->relkind),
+					   RelationGetRelationName(rel));
+
 	/*
 	 * Start a transaction in the remote node in REPEATABLE READ mode.  This
 	 * ensures that both the replication slot we create (see below) and the
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c
index bbb659dad0..872d3b1663 100644
--- a/src/backend/replication/logical/worker.c
+++ b/src/backend/replication/logical/worker.c
@@ -105,6 +105,7 @@
 #include "storage/proc.h"
 #include "storage/procarray.h"
 #include "tcop/tcopprot.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/catcache.h"
 #include "utils/dynahash.h"
@@ -1260,6 +1261,7 @@ apply_handle_insert(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData newtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1282,6 +1284,11 @@ apply_handle_insert(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Initialize the executor state. */
 	edata = create_edata_for_relation(rel);
@@ -1376,6 +1383,7 @@ apply_handle_update(StringInfo s)
 {
 	LogicalRepRelMapEntry *rel;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	LogicalRepTupleData oldtup;
@@ -1403,6 +1411,11 @@ apply_handle_update(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_UPDATE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Check if we can do the update. */
 	check_relation_updatable(rel);
@@ -1537,6 +1550,7 @@ apply_handle_delete(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData oldtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1559,6 +1573,11 @@ apply_handle_delete(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_DELETE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Check if we can do the delete. */
 	check_relation_updatable(rel);
@@ -1925,6 +1944,7 @@ apply_handle_truncate(StringInfo s)
 	{
 		LogicalRepRelId relid = lfirst_oid(lc);
 		LogicalRepRelMapEntry *rel;
+		AclResult	aclresult;
 
 		rel = logicalrep_rel_open(relid, lockmode);
 		if (!should_apply_changes_for_rel(rel))
@@ -1936,6 +1956,11 @@ apply_handle_truncate(StringInfo s)
 			logicalrep_rel_close(rel, lockmode);
 			continue;
 		}
+		aclresult = pg_class_aclcheck(rel->localreloid, GetUserId(), ACL_TRUNCATE);
+		if (aclresult != ACLCHECK_OK)
+			aclcheck_error(aclresult,
+						   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+						   get_rel_name(rel->localreloid));
 
 		remote_rels = lappend(remote_rels, rel);
 		rels = lappend(rels, rel->localrel);
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 3da68016b6..0048a5fab7 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -79,5 +79,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9276', oid_symbol => 'ROLE_PG_LOGICAL_REPLICATION',
+  rolname => 'pg_logical_replication', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index 57f7dd9b0a..07fb04a008 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -43,7 +43,7 @@ ERROR:  subscription "regress_testsub" already exists
 -- fail - must be superuser
 SET SESSION AUTHORIZATION 'regress_subscription_user2';
 CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION foo WITH (connect = false);
-ERROR:  must be superuser to create subscriptions
+ERROR:  must be superuser or a member of the pg_logical_replication role to create subscriptions
 SET SESSION AUTHORIZATION 'regress_subscription_user';
 -- fail - invalid option combinations
 CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, copy_data = true);
@@ -137,7 +137,7 @@ ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
 -- fail - new owner must be superuser
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
 ERROR:  permission denied to change owner of subscription "regress_testsub"
-HINT:  The owner of a subscription must be a superuser.
+HINT:  The owner of a subscription must be a superuser or a member of the pg_logical_replication role.
 ALTER ROLE regress_subscription_user2 SUPERUSER;
 -- now it works
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
diff --git a/src/test/subscription/t/021_priv_escalation.pl b/src/test/subscription/t/021_priv_escalation.pl
new file mode 100644
index 0000000000..b765499374
--- /dev/null
+++ b/src/test/subscription/t/021_priv_escalation.pl
@@ -0,0 +1,330 @@
+# Copyright (c) 2021, PostgreSQL Global Development Group
+
+# This test checks that logical replication table sync workers and apply workers
+# respect privileges on database objects.
+#
+# We create a publisher node, a subscriber node, and a user named
+# 'replication_manager' in role 'pg_logical_replication' which is intentionally
+# not a superuser.  Logical replication subscriptions are created by this user,
+# and consequently the table sync and apply workers run as this user.  If the
+# database security surrounding logical replication is working correctly,
+# logical replication of data to the subscriber node which causes the workers
+# to modify tables will fail unless the replication_manager role has sufficient
+# privileges.
+#
+# Failures in the logical replication workers result in infinite retry loops on
+# the subscriber node.  To prevent the tests from getting stuck, we need to
+# stop, clean, recreate and restart the nodes after each test where we expect
+# such failures, thereby breaking the failure loops.
+#
+
+use strict;
+use warnings;
+use Time::HiRes qw(usleep);
+use PostgresNode;
+use TestLib;
+use Scalar::Util qw(blessed);
+use Test::More tests => 11;
+
+my ($cmd, $publisher, $subscriber);
+
+my $testno = 0;
+sub create_fresh_nodes
+{
+	$testno++;
+
+	$publisher = get_new_node("publisher_$testno");
+	$publisher->init(allows_streaming => 'logical');
+	$publisher->append_conf('postgresql.conf',
+							'max_worker_processes = 12');
+	$publisher->append_conf('postgresql.conf',
+							'max_logical_replication_workers = 6');
+	$publisher->start;
+
+	$subscriber = get_new_node("subscriber_$testno");
+	$subscriber->init;
+	$subscriber->append_conf('postgresql.conf',
+							 'max_worker_processes = 12');
+	$subscriber->append_conf('postgresql.conf',
+							 'max_logical_replication_workers = 6');
+	$subscriber->start;
+
+	# Create identical schema structure on both nodes
+	$cmd = q(
+		CREATE USER db_superuser WITH SUPERUSER;
+		CREATE USER replication_manager IN ROLE pg_logical_replication;
+
+		GRANT CREATE ON DATABASE postgres TO db_superuser;
+		GRANT CREATE ON DATABASE postgres TO replication_manager;
+
+		SET SESSION AUTHORIZATION db_superuser;
+
+		-- Create a table owned by db_superuser with privileges granted to
+		-- replication_manager
+		CREATE TABLE shared_tbl (i INTEGER);
+		CREATE UNIQUE INDEX shared_tbl_idx
+			ON shared_tbl(i);
+		ALTER TABLE shared_tbl REPLICA IDENTITY FULL;
+		REVOKE ALL PRIVILEGES ON TABLE shared_tbl FROM PUBLIC;
+		GRANT INSERT, UPDATE, DELETE, TRUNCATE
+			ON shared_tbl
+			TO replication_manager;
+
+		-- Create a table owned by db_superuser without privileges granted to
+		-- anybody else
+		CREATE TABLE private_tbl (i INTEGER);
+		CREATE UNIQUE INDEX private_tbl_idx
+			ON private_tbl(i);
+		ALTER TABLE private_tbl REPLICA IDENTITY FULL;
+		REVOKE ALL PRIVILEGES ON TABLE private_tbl FROM PUBLIC;
+
+		RESET SESSION AUTHORIZATION;
+	);
+	$publisher->safe_psql('postgres', $cmd);
+	$subscriber->safe_psql('postgres', $cmd);
+}
+
+sub configure_logical_replication
+{
+	my %options = @_;
+
+	# On the subscriber side only, create a logging mechanism to track what
+	# operations are performed on which tables and by which users.
+	$subscriber->safe_psql('postgres', q(
+		CREATE TABLE log (
+			i INTEGER,
+			table_name TEXT,
+			op TEXT,
+			current_username TEXT,
+			session_username TEXT
+		);
+		GRANT ALL PRIVILEGES ON log TO public;
+		CREATE FUNCTION log_row_trigger_func() RETURNS TRIGGER AS $$
+		BEGIN
+			INSERT INTO public.log
+				VALUES (NEW.i, TG_TABLE_NAME, TG_OP, CURRENT_USER, SESSION_USER);
+			RETURN NEW;
+		END;
+		$$ LANGUAGE plpgsql;
+		GRANT ALL PRIVILEGES ON FUNCTION log_row_trigger_func() TO public;
+
+		SET SESSION AUTHORIZATION db_superuser;
+		CREATE TRIGGER shared_log_row_trigger
+			AFTER INSERT OR UPDATE ON shared_tbl
+			FOR EACH ROW EXECUTE FUNCTION log_row_trigger_func();
+		ALTER TABLE shared_tbl
+			ENABLE ALWAYS TRIGGER shared_log_row_trigger;
+		CREATE TRIGGER private_log_row_trigger
+			AFTER INSERT OR UPDATE ON private_tbl
+			FOR EACH ROW EXECUTE FUNCTION log_row_trigger_func();
+		ALTER TABLE private_tbl
+			ENABLE ALWAYS TRIGGER private_log_row_trigger;
+		RESET SESSION AUTHORIZATION;
+		));
+
+	my $publisher_connstr = $publisher->connstr . ' dbname=postgres';
+	$publisher->safe_psql('postgres', qq(
+		SET SESSION AUTHORIZATION replication_manager;
+		CREATE PUBLICATION private_tbl_pub
+			FOR TABLE private_tbl;
+		CREATE PUBLICATION shared_tbl_pub
+			FOR TABLE shared_tbl;
+	));
+
+	$subscriber->safe_psql('postgres', qq(
+		SET SESSION AUTHORIZATION replication_manager;
+		CREATE SUBSCRIPTION shared_tbl_sub
+			CONNECTION '$publisher_connstr'
+			PUBLICATION shared_tbl_pub;
+	));
+
+	if ($options{'attempt_private_replication'})
+	{
+		$subscriber->safe_psql('postgres', qq(
+			SET SESSION AUTHORIZATION replication_manager;
+			CREATE SUBSCRIPTION private_tbl_sub
+				CONNECTION '$publisher_connstr'
+				PUBLICATION private_tbl_pub;
+		));
+	}
+}
+
+sub destroy_nodes
+{
+	$subscriber->teardown_node();
+	$publisher->teardown_node();
+	$subscriber->clean_node();
+	$publisher->clean_node();
+}
+
+sub truncate_log
+{
+	$subscriber->safe_psql('postgres', qq(TRUNCATE log));
+}
+
+sub truncate_test_data
+{
+	$subscriber->safe_psql('postgres', qq(
+		TRUNCATE shared_tbl;
+		TRUNCATE private_tbl;
+		TRUNCATE log));
+}
+
+# Wait for a subscription to finish replicating or to fail in the attempt.
+#
+# failure_re: a regular expression that should match the subscriber node's log
+#             if and only if the replication failed.
+# success_sql: a sql query which will return true on the subscriber node if and
+#              only if the data being awaited replicated successfully.
+# expected: "fail" or "success", depending on whether we expect the replication
+#           attempt to fail or to succeed.
+#
+sub expect_replication
+{
+	my ($failure_re, $success_sql, $expected, $testname) = @_;
+
+	for (1..1800)	# 180 seconds max
+	{
+		# Has the subscription failed?
+		my $contents = TestLib::slurp_file($subscriber->logfile);
+		if ($contents =~ m/$failure_re/ms)
+		{
+			is ("fail", $expected, $testname);
+			return;
+		}
+
+		# Has the subscription caught up?
+		if ($subscriber->safe_psql('postgres', $success_sql) eq 't')
+		{
+			is ("success", $expected, $testname);
+			return;
+		}
+
+		# Wait 0.1 second before retrying.
+		usleep(100_000);
+	}
+
+	diag("replication_fails timed out waiting for failure matching /$failure_re/" .
+		 "or for true value returned from '$success_sql'");
+}
+
+sub expect_log
+{
+	my ($expected, $testname) = @_;
+
+	is ($subscriber->safe_psql('postgres', qq(SELECT * FROM log)),
+		$expected, $testname);
+}
+
+sub expect_value
+{
+	my ($table, $expected, $testname) = @_;
+
+	is ($subscriber->safe_psql('postgres', qq(SELECT i FROM $table)),
+		$expected, $testname);
+}
+
+#
+# Check that 'replication_manager' can replicate INSERT to the shared table
+#
+create_fresh_nodes();
+configure_logical_replication();
+$publisher->wait_for_catchup('shared_tbl_sub');
+$publisher->safe_psql('postgres', qq(
+	SET SESSION AUTHORIZATION db_superuser;
+	INSERT INTO shared_tbl (i) VALUES (1);
+));
+expect_replication(
+	qr/ERROR/,		# We should not see any ERROR message
+	qq(SELECT COUNT(1) > 0 FROM shared_tbl),
+	"success",
+	"replication can propogate inserts into shared_tbl");
+expect_log(
+	"1|shared_tbl|INSERT|replication_manager|replication_manager",
+	"successful replication of INSERT to shared_tbl is logged");
+expect_value(
+	"shared_tbl", "1",
+	"shared_tbl contains expected row after replication of INSERT");
+
+#
+# Check that 'replication_manager' can replicate UPDATE to the shared table
+#
+truncate_log();
+$publisher->safe_psql('postgres', qq(
+	SET SESSION AUTHORIZATION db_superuser;
+	UPDATE shared_tbl SET i = i + 1;
+));
+expect_replication(
+	qr/ERROR/,		# We should not see any ERROR message
+	qq(SELECT COUNT(1) > 0 FROM shared_tbl WHERE i = 2),
+	"success",
+	"replication can propogate updates into shared_tbl");
+expect_log(
+	"2|shared_tbl|UPDATE|replication_manager|replication_manager",
+	"successful replication of UPDATE to shared_tbl is logged");
+expect_value(
+	"shared_tbl", "2",
+	"shared_tbl contains expected row after replication of UPDATE");
+
+#
+# Check that having privileges to replicate into a table allows triggering
+# functions which replication_manager would otherwise not have permission to
+# execute.  This may seem wrong, but it is how function execution privileges
+# are handled vis-a-vis triggers under non-logical-replication circumstances,
+# and it would be more surprising for logical replication to diverge from this
+# behavior than to adhere to it.
+#
+truncate_test_data();
+$subscriber->safe_psql('postgres', q(
+	SET SESSION AUTHORIZATION db_superuser;
+	CREATE FUNCTION db_superuser_func() returns trigger as $$
+	BEGIN
+		NEW.i = NEW.i + 1;
+		RETURN NEW;
+	END;
+	$$ LANGUAGE plpgsql;
+	REVOKE ALL PRIVILEGES ON FUNCTION db_superuser_func() FROM PUBLIC;
+	CREATE TRIGGER escalation_trig
+		BEFORE INSERT OR UPDATE
+		ON shared_tbl
+		FOR EACH ROW EXECUTE FUNCTION db_superuser_func();
+	ALTER TABLE shared_tbl
+		ENABLE ALWAYS TRIGGER escalation_trig;
+	GRANT INSERT ON shared_tbl TO replication_manager;
+));
+$publisher->safe_psql('postgres', qq(
+	SET SESSION AUTHORIZATION db_superuser;
+	INSERT INTO shared_tbl (i) VALUES (3);
+));
+expect_replication(
+	qr/ERROR/,		# We should not see any ERROR message
+	qq(SELECT COUNT(1) > 0 FROM shared_tbl WHERE i IN (3, 4)),
+	"success",
+	"replication performs inserts despite lacking trigger function privileges");
+expect_log(
+	"4|shared_tbl|INSERT|replication_manager|replication_manager",
+	"successful replication and triggered modification of INSERT into shared_tbl is logged");
+expect_value(
+	"shared_tbl", "4",
+	"shared_tbl contains expected, trigger-altered value");
+truncate_test_data();
+
+#
+# Check that table sync workers cannot INSERT into the private table
+#
+destroy_nodes();
+create_fresh_nodes();
+$publisher->safe_psql('postgres', qq(
+SET SESSION AUTHORIZATION db_superuser;
+INSERT INTO private_tbl (i) VALUES (6);
+));
+configure_logical_replication(
+	attempt_private_replication => 1);
+expect_replication(
+	qr/ERROR/,
+	qq(SELECT COUNT(1) > 0 FROM private_tbl WHERE i = 6),
+	"fail",
+	"table sync workers cannot insert into private table");
+expect_value(
+	"private_tbl", "",
+	"private_tbl empty after failed table sync");
-- 
2.21.1 (Apple Git-122.3)

v4-0002-Add-default-role-for-host-security-operations.patchapplication/octet-stream; name=v4-0002-Add-default-role-for-host-security-operations.patch; x-unix-mode=0644Download
From a53c2cdedaeaa786e9d9324a8154208f76a6c711 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 29 Jun 2021 09:54:48 -0700
Subject: [PATCH v4 2/5] Add default role for host security operations

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_host_security role and
delegating to it the authority to load extensions, and to create,
alter, and drop event triggers and tablespaces.
---
 doc/src/sgml/ref/alter_event_trigger.sgml   |  3 ++-
 doc/src/sgml/ref/create_event_trigger.sgml  |  3 ++-
 doc/src/sgml/ref/create_tablespace.sgml     |  7 +++---
 doc/src/sgml/ref/drop_tablespace.sgml       | 16 ++++++-------
 doc/src/sgml/ref/load.sgml                  | 12 +++++-----
 doc/src/sgml/user-manag.sgml                |  6 +++++
 src/backend/catalog/aclchk.c                | 19 +++++++++++-----
 src/backend/commands/event_trigger.c        | 11 +++++----
 src/backend/commands/extension.c            |  7 +++---
 src/backend/commands/tablespace.c           |  8 ++++---
 src/backend/tcop/utility.c                  |  4 +++-
 src/include/catalog/pg_authid.dat           |  5 +++++
 src/pl/plperl/expected/plperl_setup.out     |  4 ++--
 src/test/regress/expected/event_trigger.out |  4 ++--
 src/test/regress/expected/privileges.out    | 25 +++++++++++++++++++--
 src/test/regress/input/tablespace.source    | 10 +++++++++
 src/test/regress/output/tablespace.source   |  9 ++++++++
 src/test/regress/sql/privileges.sql         | 24 +++++++++++++++++++-
 18 files changed, 135 insertions(+), 42 deletions(-)

diff --git a/doc/src/sgml/ref/alter_event_trigger.sgml b/doc/src/sgml/ref/alter_event_trigger.sgml
index ef5253bf37..31ec520e13 100644
--- a/doc/src/sgml/ref/alter_event_trigger.sgml
+++ b/doc/src/sgml/ref/alter_event_trigger.sgml
@@ -37,7 +37,8 @@ ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> RENAME TO
   </para>
 
   <para>
-   You must be superuser to alter an event trigger.
+   You must be superuser or a member of role
+   <literal>pg_host_security</literal> to alter an event trigger.
   </para>
  </refsect1>
 
diff --git a/doc/src/sgml/ref/create_event_trigger.sgml b/doc/src/sgml/ref/create_event_trigger.sgml
index becd31bcad..af21622a45 100644
--- a/doc/src/sgml/ref/create_event_trigger.sgml
+++ b/doc/src/sgml/ref/create_event_trigger.sgml
@@ -116,7 +116,8 @@ CREATE EVENT TRIGGER <replaceable class="parameter">name</replaceable>
   <title>Notes</title>
 
   <para>
-   Only superusers can create event triggers.
+   Only superusers and members of role <literal>pg_host_security</literal> can
+   create event triggers.
   </para>
 
   <para>
diff --git a/doc/src/sgml/ref/create_tablespace.sgml b/doc/src/sgml/ref/create_tablespace.sgml
index 84fa7ee5e2..cf4997b22b 100644
--- a/doc/src/sgml/ref/create_tablespace.sgml
+++ b/doc/src/sgml/ref/create_tablespace.sgml
@@ -38,9 +38,10 @@ CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable>
   </para>
 
   <para>
-   A tablespace allows superusers to define an alternative location on
-   the file system where the data files containing database objects
-   (such as tables and indexes) can reside.
+   A tablespace allows superusers and members of role
+   <literal>pg_host_security</literal> to define an alternative location on the
+   file system where the data files containing database objects (such as tables
+   and indexes) can reside.
   </para>
 
   <para>
diff --git a/doc/src/sgml/ref/drop_tablespace.sgml b/doc/src/sgml/ref/drop_tablespace.sgml
index 047e4e0481..dad2e6ac4d 100644
--- a/doc/src/sgml/ref/drop_tablespace.sgml
+++ b/doc/src/sgml/ref/drop_tablespace.sgml
@@ -33,14 +33,14 @@ DROP TABLESPACE [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
   </para>
 
   <para>
-   A tablespace can only be dropped by its owner or a superuser.
-   The tablespace must be empty of all database objects before it can be
-   dropped. It is possible that objects in other databases might still reside
-   in the tablespace even if no objects in the current database are using
-   the tablespace.  Also, if the tablespace is listed in the <xref
-   linkend="guc-temp-tablespaces"/> setting of any active session, the
-   <command>DROP</command> might fail due to temporary files residing in the
-   tablespace.
+   A tablespace can only be dropped by its owner, a member of role
+   <literal>pg_host_security</literal>, or a superuser.  The tablespace must be
+   empty of all database objects before it can be dropped. It is possible that
+   objects in other databases might still reside in the tablespace even if no
+   objects in the current database are using the tablespace.  Also, if the
+   tablespace is listed in the <xref linkend="guc-temp-tablespaces"/> setting
+   of any active session, the <command>DROP</command> might fail due to
+   temporary files residing in the tablespace.
   </para>
  </refsect1>
 
diff --git a/doc/src/sgml/ref/load.sgml b/doc/src/sgml/ref/load.sgml
index 2c214dd726..e401c5b078 100644
--- a/doc/src/sgml/ref/load.sgml
+++ b/doc/src/sgml/ref/load.sgml
@@ -52,12 +52,12 @@ LOAD '<replaceable class="parameter">filename</replaceable>'
   </indexterm>
 
   <para>
-   Non-superusers can only apply <command>LOAD</command> to library files
-   located in <filename>$libdir/plugins/</filename> &mdash; the specified
-   <replaceable class="parameter">filename</replaceable> must begin
-   with exactly that string.  (It is the database administrator's
-   responsibility to ensure that only <quote>safe</quote> libraries
-   are installed there.)
+   Non-superusers not members of role <literal>pg_host_security</literal> can
+   only apply <command>LOAD</command> to library files located in
+   <filename>$libdir/plugins/</filename> &mdash; the specified <replaceable
+   class="parameter">filename</replaceable> must begin with exactly that
+   string.  (It is the database administrator's responsibility to ensure that
+   only <quote>safe</quote> libraries are installed there.)
   </para>
  </refsect1>
 
diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index be74599b54..103c3ed21c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -587,6 +587,12 @@ DROP ROLE doomed_role;
        subscriptions and publications, and connect to the server in logical
        replication mode.</entry>
       </row>
+      <row>
+       <entry>pg_host_security</entry>
+       <entry>Allow loading extensions, and creating, altering, and dropping
+       event triggers and tablespaces.
+       </entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 53392414f1..50bafae58e 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -4299,8 +4299,12 @@ pg_tablespace_aclmask(Oid spc_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_host_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
 		return mask;
 
 	/*
@@ -5027,8 +5031,12 @@ pg_tablespace_ownercheck(Oid spc_oid, Oid roleid)
 	HeapTuple	spctuple;
 	Oid			spcowner;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_host_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
 		return true;
 
 	/* Search syscache for pg_tablespace */
@@ -5217,7 +5225,8 @@ pg_event_trigger_ownercheck(Oid et_oid, Oid roleid)
 	Oid			ownerId;
 
 	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(EVENTTRIGGEROID, ObjectIdGetDatum(et_oid));
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 9c31c9e763..860565f825 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -20,6 +20,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_event_trigger.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
@@ -119,12 +120,13 @@ CreateEventTrigger(CreateEventTrigStmt *stmt)
 	 * this, but there are obvious privilege escalation risks which would have
 	 * to somehow be plugged first.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create event trigger \"%s\"",
 						stmt->trigname),
-				 errhint("Must be superuser to create an event trigger.")));
+				 errhint("Must be superuser or a member of the pg_host_security role to create an event trigger.")));
 
 	/* Validate event name. */
 	if (strcmp(stmt->eventname, "ddl_command_start") != 0 &&
@@ -477,12 +479,13 @@ AlterEventTriggerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					   NameStr(form->evtname));
 
 	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of event trigger \"%s\"",
 						NameStr(form->evtname)),
-				 errhint("The owner of an event trigger must be a superuser.")));
+				 errhint("The owner of an event trigger must be a superuser or a member of the pg_host_security role.")));
 
 	form->evtowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 41857feda9..db22f3207f 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -852,7 +852,8 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 	 * here so that the control flags are correctly associated with the right
 	 * script(s) if they happen to be set in secondary control files.
 	 */
-	if (control->superuser && !superuser())
+	if (control->superuser && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 	{
 		if (extension_is_trusted(control))
 			switch_to_superuser = true;
@@ -863,7 +864,7 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 							control->name),
 					 control->trusted
 					 ? errhint("Must have CREATE privilege on current database to create this extension.")
-					 : errhint("Must be superuser to create this extension.")));
+					 : errhint("Must be superuser or a member of the pg_host_security role to create this extension.")));
 		else
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -871,7 +872,7 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
 							control->name),
 					 control->trusted
 					 ? errhint("Must have CREATE privilege on current database to update this extension.")
-					 : errhint("Must be superuser to update this extension.")));
+					 : errhint("Must be superuser or a member of the pg_host_security role to update this extension.")));
 	}
 
 	filename = get_extension_script_filename(control, from_version, version);
diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index 69ea155d50..c8720664b6 100644
--- a/src/backend/commands/tablespace.c
+++ b/src/backend/commands/tablespace.c
@@ -63,6 +63,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_tablespace.h"
 #include "commands/comment.h"
@@ -242,13 +243,14 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
 	Oid			ownerId;
 	Datum		newOptions;
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_host_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create tablespace \"%s\"",
 						stmt->tablespacename),
-				 errhint("Must be superuser to create a tablespace.")));
+				 errhint("Must be superuser or a member of the pg_host_security role to create a tablespace.")));
 
 	/* However, the eventual owner of the tablespace need not be */
 	if (stmt->owner)
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 7a2da9dab4..0e2278b049 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -24,6 +24,7 @@
 #include "catalog/catalog.h"
 #include "catalog/index.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/toasting.h"
 #include "commands/alter.h"
@@ -825,7 +826,8 @@ standard_ProcessUtility(PlannedStmt *pstmt,
 
 				closeAllVfds(); /* probably not necessary... */
 				/* Allowed names are restricted if you're not superuser */
-				load_file(stmt->filename, !superuser());
+				load_file(stmt->filename, !superuser() &&
+						  !has_privs_of_role(GetUserId(), ROLE_PG_HOST_SECURITY));
 			}
 			break;
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 0048a5fab7..33d5b637a1 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -84,5 +84,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9277', oid_symbol => 'ROLE_PG_HOST_SECURITY',
+  rolname => 'pg_host_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/pl/plperl/expected/plperl_setup.out b/src/pl/plperl/expected/plperl_setup.out
index a1a24dfb41..bab9b3db53 100644
--- a/src/pl/plperl/expected/plperl_setup.out
+++ b/src/pl/plperl/expected/plperl_setup.out
@@ -12,7 +12,7 @@ ERROR:  permission denied to create extension "plperl"
 HINT:  Must have CREATE privilege on current database to create this extension.
 CREATE EXTENSION plperlu;  -- fail
 ERROR:  permission denied to create extension "plperlu"
-HINT:  Must be superuser to create this extension.
+HINT:  Must be superuser or a member of the pg_host_security role to create this extension.
 RESET ROLE;
 DO $$
 begin
@@ -24,7 +24,7 @@ SET ROLE regress_user1;
 CREATE EXTENSION plperl;
 CREATE EXTENSION plperlu;  -- fail
 ERROR:  permission denied to create extension "plperlu"
-HINT:  Must be superuser to create this extension.
+HINT:  Must be superuser or a member of the pg_host_security role to create this extension.
 CREATE FUNCTION foo1() returns int language plperl as '1;';
 SELECT foo1();
  foo1 
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index 44d545de25..709532c06a 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -90,7 +90,7 @@ set role regress_evt_user;
 create event trigger regress_event_trigger_noperms on ddl_command_start
    execute procedure test_event_trigger();
 ERROR:  permission denied to create event trigger "regress_event_trigger_noperms"
-HINT:  Must be superuser to create an event trigger.
+HINT:  Must be superuser or a member of the pg_host_security role to create an event trigger.
 reset role;
 -- test enabling and disabling
 alter event trigger regress_event_trigger disable;
@@ -176,7 +176,7 @@ NOTICE:  test_event_trigger: ddl_command_end ALTER DEFAULT PRIVILEGES
 -- alter owner to non-superuser should fail
 alter event trigger regress_event_trigger owner to regress_evt_user;
 ERROR:  permission denied to change owner of event trigger "regress_event_trigger"
-HINT:  The owner of an event trigger must be a superuser.
+HINT:  The owner of an event trigger must be a superuser or a member of the pg_host_security role.
 -- alter owner to superuser should work
 alter role regress_evt_user superuser;
 alter event trigger regress_event_trigger owner to regress_evt_user;
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 83cff902f3..9664276359 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -13,6 +13,7 @@ DROP ROLE IF EXISTS regress_priv_user4;
 DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
+DROP ROLE IF EXISTS regress_priv_user8;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -29,6 +30,7 @@ CREATE USER regress_priv_user5;	-- duplicate
 ERROR:  role "regress_priv_user5" already exists
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
+CREATE USER regress_priv_user8;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1829,6 +1831,24 @@ TABLE information_schema.enabled_roles;
 INSERT INTO datdba_only DEFAULT VALUES;
 ERROR:  permission denied for table datdba_only
 ROLLBACK;
+-- test pg_host_security authority to create event triggers
+GRANT pg_host_security TO regress_priv_user8;
+SET SESSION AUTHORIZATION regress_priv_user8;
+CREATE FUNCTION user8_event_trigger() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user8_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user8_event_trigger_start ON ddl_command_start
+   EXECUTE PROCEDURE user8_event_trigger();
+CREATE EVENT TRIGGER user8_event_trigger_end ON ddl_command_end
+   EXECUTE FUNCTION user8_event_trigger();
+COMMENT ON EVENT TRIGGER user8_event_trigger_start IS 'test comment';
+ALTER EVENT TRIGGER user8_event_trigger_end RENAME TO user8_event_trigger_finish;
+DROP EVENT TRIGGER user8_event_trigger_start;
+DROP EVENT TRIGGER user8_event_trigger_finish;
+DROP FUNCTION user8_event_trigger;
+RESET SESSION AUTHORIZATION;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2328,8 +2348,9 @@ DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
-DROP USER regress_priv_user8; -- does not exist
-ERROR:  role "regress_priv_user8" does not exist
+DROP USER regress_priv_user8;
+DROP USER regress_priv_user9; -- does not exist
+ERROR:  role "regress_priv_user9" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/input/tablespace.source b/src/test/regress/input/tablespace.source
index c133e73499..a46cb7fcbf 100644
--- a/src/test/regress/input/tablespace.source
+++ b/src/test/regress/input/tablespace.source
@@ -405,6 +405,16 @@ ALTER TABLE ALL IN TABLESPACE regress_tblspace_renamed SET TABLESPACE pg_default
 -- Should succeed
 DROP TABLESPACE regress_tblspace_renamed;
 
+-- Role pg_host_security should be able to create, alter, and drop tablespaces
+CREATE USER tablespace_admin;
+GRANT pg_host_security TO tablespace_admin;
+SET SESSION AUTHORIZATION tablespace_admin;
+CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@'; -- ok
+ALTER TABLESPACE regress_tblspace RENAME TO regress_tblspace_renamed;
+ALTER TABLESPACE regress_tblspace_renamed SET (random_page_cost = 1.0, seq_page_cost = 1.1);
+DROP TABLESPACE regress_tblspace_renamed;
+RESET SESSION AUTHORIZATION;
+
 DROP SCHEMA testschema CASCADE;
 
 DROP ROLE regress_tablespace_user1;
diff --git a/src/test/regress/output/tablespace.source b/src/test/regress/output/tablespace.source
index 1bbe7e0323..03367118f0 100644
--- a/src/test/regress/output/tablespace.source
+++ b/src/test/regress/output/tablespace.source
@@ -924,6 +924,15 @@ ALTER TABLE ALL IN TABLESPACE regress_tblspace_renamed SET TABLESPACE pg_default
 NOTICE:  no matching relations in tablespace "regress_tblspace_renamed" found
 -- Should succeed
 DROP TABLESPACE regress_tblspace_renamed;
+-- Role pg_host_security should be able to create, alter, and drop tablespaces
+CREATE USER tablespace_admin;
+GRANT pg_host_security TO tablespace_admin;
+SET SESSION AUTHORIZATION tablespace_admin;
+CREATE TABLESPACE regress_tblspace LOCATION '@testtablespace@'; -- ok
+ALTER TABLESPACE regress_tblspace RENAME TO regress_tblspace_renamed;
+ALTER TABLESPACE regress_tblspace_renamed SET (random_page_cost = 1.0, seq_page_cost = 1.1);
+DROP TABLESPACE regress_tblspace_renamed;
+RESET SESSION AUTHORIZATION;
 DROP SCHEMA testschema CASCADE;
 NOTICE:  drop cascades to 6 other objects
 DETAIL:  drop cascades to table testschema.foo
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 3d1a1db987..aea13448bc 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -17,6 +17,7 @@ DROP ROLE IF EXISTS regress_priv_user4;
 DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
+DROP ROLE IF EXISTS regress_priv_user8;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -32,6 +33,7 @@ CREATE USER regress_priv_user5;
 CREATE USER regress_priv_user5;	-- duplicate
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
+CREATE USER regress_priv_user8;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1092,6 +1094,25 @@ TABLE information_schema.enabled_roles;
 INSERT INTO datdba_only DEFAULT VALUES;
 ROLLBACK;
 
+-- test pg_host_security authority to create event triggers
+GRANT pg_host_security TO regress_priv_user8;
+SET SESSION AUTHORIZATION regress_priv_user8;
+CREATE FUNCTION user8_event_trigger() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user8_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user8_event_trigger_start ON ddl_command_start
+   EXECUTE PROCEDURE user8_event_trigger();
+CREATE EVENT TRIGGER user8_event_trigger_end ON ddl_command_end
+   EXECUTE FUNCTION user8_event_trigger();
+COMMENT ON EVENT TRIGGER user8_event_trigger_start IS 'test comment';
+ALTER EVENT TRIGGER user8_event_trigger_end RENAME TO user8_event_trigger_finish;
+DROP EVENT TRIGGER user8_event_trigger_start;
+DROP EVENT TRIGGER user8_event_trigger_finish;
+DROP FUNCTION user8_event_trigger;
+RESET SESSION AUTHORIZATION;
+
 -- test default ACLs
 \c -
 
@@ -1391,7 +1412,8 @@ DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
-DROP USER regress_priv_user8; -- does not exist
+DROP USER regress_priv_user8;
+DROP USER regress_priv_user9; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

v4-0003-Add-default-role-for-network-security-operations.patchapplication/octet-stream; name=v4-0003-Add-default-role-for-network-security-operations.patch; x-unix-mode=0644Download
From fc5b6d54e0c9ccfcca332906a95e8fb351f7730d Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 29 Jun 2021 10:48:20 -0700
Subject: [PATCH v4 3/5] Add default role for network security operations

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_network_security role and
delegating to it the authority to create, alter and drop foreign
servers and foreign data wrappers.
---
 contrib/dblink/dblink.c                       | 13 +++---
 contrib/dblink/expected/dblink.out            |  2 +-
 contrib/file_fdw/output/file_fdw.source       |  2 +-
 contrib/postgres_fdw/connection.c             | 20 +++++----
 .../postgres_fdw/expected/postgres_fdw.out    | 20 ++++-----
 contrib/postgres_fdw/option.c                 | 16 ++++---
 doc/src/sgml/user-manag.sgml                  |  6 +++
 src/backend/catalog/aclchk.c                  | 45 ++++++++++++++-----
 src/backend/commands/foreigncmds.c            | 40 +++++++++++------
 src/include/catalog/pg_authid.dat             |  5 +++
 src/test/regress/expected/foreign_data.out    | 18 ++++----
 src/test/regress/expected/privileges.out      | 18 +++++++-
 src/test/regress/sql/privileges.sql           | 17 ++++++-
 13 files changed, 153 insertions(+), 69 deletions(-)

diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 3a0beaa88e..2c4a065240 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -39,6 +39,7 @@
 #include "access/reloptions.h"
 #include "access/table.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_foreign_data_wrapper.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_type.h"
@@ -352,7 +353,7 @@ dblink_connect(PG_FUNCTION_ARGS)
 				 errdetail_internal("%s", msg)));
 	}
 
-	/* check password actually used if not superuser */
+	/* check password actually used if not superuser nor pg_network_security */
 	dblink_security_check(conn, rconn);
 
 	/* attempt to set client encoding to match server encoding, if needed */
@@ -2666,7 +2667,8 @@ deleteConnection(const char *name)
 static void
 dblink_security_check(PGconn *conn, remoteConn *rconn)
 {
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 	{
 		if (!PQconnectionUsedPassword(conn))
 		{
@@ -2678,7 +2680,7 @@ dblink_security_check(PGconn *conn, remoteConn *rconn)
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superuser cannot connect if the server does not request a password."),
+					 errdetail("Non-superuser other than pg_network_security cannot connect if the server does not request a password."),
 					 errhint("Target server's authentication method must be changed.")));
 		}
 	}
@@ -2693,7 +2695,8 @@ dblink_security_check(PGconn *conn, remoteConn *rconn)
 static void
 dblink_connstr_check(const char *connstr)
 {
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 	{
 		PQconninfoOption *options;
 		PQconninfoOption *option;
@@ -2720,7 +2723,7 @@ dblink_connstr_check(const char *connstr)
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superusers must provide a password in the connection string.")));
+					 errdetail("Non-superusers other than pg_network_security must provide a password in the connection string.")));
 	}
 }
 
diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out
index 6516d4f131..d575891ad1 100644
--- a/contrib/dblink/expected/dblink.out
+++ b/contrib/dblink/expected/dblink.out
@@ -887,7 +887,7 @@ SET SESSION AUTHORIZATION regress_dblink_user;
 -- should fail
 SELECT dblink_connect('myconn', 'fdtest');
 ERROR:  password is required
-DETAIL:  Non-superusers must provide a password in the connection string.
+DETAIL:  Non-superusers other than pg_network_security must provide a password in the connection string.
 -- should succeed
 SELECT dblink_connect_u('myconn', 'fdtest');
  dblink_connect_u 
diff --git a/contrib/file_fdw/output/file_fdw.source b/contrib/file_fdw/output/file_fdw.source
index 52b4d5f1df..49e2a9e45f 100644
--- a/contrib/file_fdw/output/file_fdw.source
+++ b/contrib/file_fdw/output/file_fdw.source
@@ -17,7 +17,7 @@ CREATE SERVER file_server FOREIGN DATA WRAPPER file_fdw;
 SET ROLE regress_file_fdw_user;
 CREATE FOREIGN DATA WRAPPER file_fdw2 HANDLER file_fdw_handler VALIDATOR file_fdw_validator;   -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "file_fdw2"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 CREATE SERVER file_server2 FOREIGN DATA WRAPPER file_fdw;   -- ERROR
 ERROR:  permission denied for foreign-data wrapper file_fdw
 CREATE USER MAPPING FOR regress_file_fdw_user SERVER file_server;   -- ERROR
diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
index 82aa14a65d..4f0da2b13d 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -14,6 +14,7 @@
 
 #include "access/htup_details.h"
 #include "access/xact.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_user_mapping.h"
 #include "commands/defrem.h"
 #include "funcapi.h"
@@ -23,6 +24,7 @@
 #include "postgres_fdw.h"
 #include "storage/fd.h"
 #include "storage/latch.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/datetime.h"
 #include "utils/hsearch.h"
@@ -425,11 +427,12 @@ connect_pg_server(ForeignServer *server, UserMapping *user)
 		 * check_conn_params.
 		 */
 		if (!superuser_arg(user->userid) && UserMappingPasswordRequired(user) &&
+			!has_privs_of_role(user->userid, ROLE_PG_NETWORK_SECURITY) &&
 			!PQconnectionUsedPassword(conn))
 			ereport(ERROR,
 					(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 					 errmsg("password is required"),
-					 errdetail("Non-superuser cannot connect if the server does not request a password."),
+					 errdetail("Non-superuser other than pg_network_security cannot connect if the server does not request a password."),
 					 errhint("Target server's authentication method must be changed or password_required=false set in the user mapping attributes.")));
 
 		/* Prepare new session for use */
@@ -488,11 +491,11 @@ UserMappingPasswordRequired(UserMapping *user)
 }
 
 /*
- * For non-superusers, insist that the connstr specify a password.  This
- * prevents a password from being picked up from .pgpass, a service file, the
- * environment, etc.  We don't want the postgres user's passwords,
- * certificates, etc to be accessible to non-superusers.  (See also
- * dblink_connstr_check in contrib/dblink.)
+ * For non-superusers other than pg_network_security, insist that the connstr
+ * specify a password.  This prevents a password from being picked up from
+ * .pgpass, a service file, the environment, etc.  We don't want the postgres
+ * user's passwords, certificates, etc to be accessible to non-superusers.
+ * (See also dblink_connstr_check in contrib/dblink.)
  */
 static void
 check_conn_params(const char **keywords, const char **values, UserMapping *user)
@@ -500,7 +503,8 @@ check_conn_params(const char **keywords, const char **values, UserMapping *user)
 	int			i;
 
 	/* no check required if superuser */
-	if (superuser_arg(user->userid))
+	if (superuser_arg(user->userid) ||
+		has_privs_of_role(user->userid, ROLE_PG_NETWORK_SECURITY))
 		return;
 
 	/* ok if params contain a non-empty password */
@@ -517,7 +521,7 @@ check_conn_params(const char **keywords, const char **values, UserMapping *user)
 	ereport(ERROR,
 			(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
 			 errmsg("password is required"),
-			 errdetail("Non-superusers must provide a password in the user mapping.")));
+			 errdetail("Non-superusers other than pg_network_security must provide a password in the user mapping.")));
 }
 
 /*
diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out
index 31b5de91ad..0c7f28c487 100644
--- a/contrib/postgres_fdw/expected/postgres_fdw.out
+++ b/contrib/postgres_fdw/expected/postgres_fdw.out
@@ -9227,7 +9227,7 @@ CREATE FOREIGN TABLE ft1_nopw (
 ) SERVER loopback_nopw OPTIONS (schema_name 'public', table_name 'ft1');
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superusers must provide a password in the user mapping.
+DETAIL:  Non-superusers other than pg_network_security must provide a password in the user mapping.
 -- If we add a password to the connstr it'll fail, because we don't allow passwords
 -- in connstrs only in user mappings.
 DO $d$
@@ -9246,15 +9246,15 @@ PL/pgSQL function inline_code_block line 3 at EXECUTE
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password 'dummypw');
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superuser cannot connect if the server does not request a password.
+DETAIL:  Non-superuser other than pg_network_security cannot connect if the server does not request a password.
 HINT:  Target server's authentication method must be changed or password_required=false set in the user mapping attributes.
 -- Unpriv user cannot make the mapping passwordless
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD password_required 'false');
-ERROR:  password_required=false is superuser-only
-HINT:  User mappings with the password_required option set to false may only be created or modified by the superuser
+ERROR:  password_required=false requires superuser or pg_network_security privilege
+HINT:  User mappings with the password_required option set to false may only be created or modified by the superuser or pg_network_security
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superuser cannot connect if the server does not request a password.
+DETAIL:  Non-superuser other than pg_network_security cannot connect if the server does not request a password.
 HINT:  Target server's authentication method must be changed or password_required=false set in the user mapping attributes.
 RESET ROLE;
 -- But the superuser can
@@ -9271,11 +9271,11 @@ SELECT 1 FROM ft1_nopw LIMIT 1;
 -- first set password_required so we see the right error messages
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (SET password_required 'true');
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslcert 'foo.crt');
-ERROR:  sslcert and sslkey are superuser-only
-HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser
+ERROR:  sslcert and sslkey require superuser or pg_network_security privilege
+HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser or pg_network_security
 ALTER USER MAPPING FOR CURRENT_USER SERVER loopback_nopw OPTIONS (ADD sslkey 'foo.key');
-ERROR:  sslcert and sslkey are superuser-only
-HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser
+ERROR:  sslcert and sslkey require superuser or pg_network_security privilege
+HINT:  User mappings with the sslcert or sslkey options set may only be created or modified by the superuser or pg_network_security
 -- We're done with the role named after a specific user and need to check the
 -- changes to the public mapping.
 DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;
@@ -9283,7 +9283,7 @@ DROP USER MAPPING FOR CURRENT_USER SERVER loopback_nopw;
 -- lacks password_required=false
 SELECT 1 FROM ft1_nopw LIMIT 1;
 ERROR:  password is required
-DETAIL:  Non-superusers must provide a password in the user mapping.
+DETAIL:  Non-superusers other than pg_network_security must provide a password in the user mapping.
 RESET ROLE;
 -- The user mapping for public is passwordless and lacks the password_required=false
 -- mapping option, but will work because the current user is a superuser.
diff --git a/contrib/postgres_fdw/option.c b/contrib/postgres_fdw/option.c
index 672b55a808..825c37463b 100644
--- a/contrib/postgres_fdw/option.c
+++ b/contrib/postgres_fdw/option.c
@@ -13,12 +13,14 @@
 #include "postgres.h"
 
 #include "access/reloptions.h"
+#include "catalog/pg_authid_d.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_foreign_table.h"
 #include "catalog/pg_user_mapping.h"
 #include "commands/defrem.h"
 #include "commands/extension.h"
 #include "postgres_fdw.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/varlena.h"
 
@@ -167,21 +169,23 @@ postgres_fdw_validator(PG_FUNCTION_ARGS)
 			 * a choice since we can't see the old mapping when validating an
 			 * alter.
 			 */
-			if (!superuser() && !pw_required)
+			if (!superuser() && !pw_required &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-						 errmsg("password_required=false is superuser-only"),
-						 errhint("User mappings with the password_required option set to false may only be created or modified by the superuser")));
+						 errmsg("password_required=false requires superuser or pg_network_security privilege"),
+						 errhint("User mappings with the password_required option set to false may only be created or modified by the superuser or pg_network_security")));
 		}
 		else if (strcmp(def->defname, "sslcert") == 0 ||
 				 strcmp(def->defname, "sslkey") == 0)
 		{
 			/* similarly for sslcert / sslkey on user mapping */
-			if (catalog == UserMappingRelationId && !superuser())
+			if (catalog == UserMappingRelationId && !superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-						 errmsg("sslcert and sslkey are superuser-only"),
-						 errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser")));
+						 errmsg("sslcert and sslkey require superuser or pg_network_security privilege"),
+						 errhint("User mappings with the sslcert or sslkey options set may only be created or modified by the superuser or pg_network_security")));
 		}
 	}
 
diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 103c3ed21c..e2d99fc07c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -593,6 +593,12 @@ DROP ROLE doomed_role;
        event triggers and tablespaces.
        </entry>
       </row>
+      <row>
+       <entry>pg_network_security</entry>
+       <entry>Allow creating, altering and dropping foreign servers and foreign
+       data wrappers and connecting to foreign servers without a password.
+       </entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 50bafae58e..1316a6e36c 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -4362,8 +4362,9 @@ pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid,
 
 	Form_pg_foreign_data_wrapper fdwForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/* Bypass permission checks for superusers and pg_network_security */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return mask;
 
 	/*
@@ -4424,8 +4425,12 @@ pg_foreign_server_aclmask(Oid srv_oid, Oid roleid,
 
 	Form_pg_foreign_server srvForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/*
+	 * Bypass permission checks for superusers and members of the
+	 * pg_network_security role
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return mask;
 
 	/*
@@ -5170,8 +5175,12 @@ pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(FOREIGNDATAWRAPPEROID, ObjectIdGetDatum(srv_oid));
@@ -5197,8 +5206,12 @@ pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(FOREIGNSERVEROID, ObjectIdGetDatum(srv_oid));
@@ -5372,8 +5385,12 @@ pg_publication_ownercheck(Oid pub_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(PUBLICATIONOID, ObjectIdGetDatum(pub_oid));
@@ -5398,8 +5415,12 @@ pg_subscription_ownercheck(Oid sub_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_network_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(SUBSCRIPTIONOID, ObjectIdGetDatum(sub_oid));
diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c
index bc36311d38..711472e972 100644
--- a/src/backend/commands/foreigncmds.c
+++ b/src/backend/commands/foreigncmds.c
@@ -21,6 +21,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid_d.h"
 #include "catalog/pg_foreign_data_wrapper.h"
 #include "catalog/pg_foreign_server.h"
 #include "catalog/pg_foreign_table.h"
@@ -214,21 +215,29 @@ AlterForeignDataWrapperOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerI
 
 	form = (Form_pg_foreign_data_wrapper) GETSTRUCT(tup);
 
-	/* Must be a superuser to change a FDW owner */
-	if (!superuser())
+	/*
+	 * Must be a superuser or a member of the pg_network_security role to
+	 * change a FDW owner
+	 */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of foreign-data wrapper \"%s\"",
 						NameStr(form->fdwname)),
-				 errhint("Must be superuser to change owner of a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security role to change owner of a foreign-data wrapper.")));
 
-	/* New owner must also be a superuser */
-	if (!superuser_arg(newOwnerId))
+	/*
+	 * New owner must also be a superuser or a member of the
+	 * pg_network_security role
+	 */
+	if (!superuser_arg(newOwnerId) &&
+		!has_privs_of_role(newOwnerId, ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to change owner of foreign-data wrapper \"%s\"",
 						NameStr(form->fdwname)),
-				 errhint("The owner of a foreign-data wrapper must be a superuser.")));
+				 errhint("The owner of a foreign-data wrapper must be a superuser or member of pg_network_security role.")));
 
 	if (form->fdwowner != newOwnerId)
 	{
@@ -357,8 +366,9 @@ AlterForeignServerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 
 			srvId = form->oid;
 
-			/* Must be owner */
-			if (!pg_foreign_server_ownercheck(srvId, GetUserId()))
+			/* Must be owner or a member of the pg_network_security role */
+			if (!pg_foreign_server_ownercheck(srvId, GetUserId()) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 				aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_FOREIGN_SERVER,
 							   NameStr(form->srvname));
 
@@ -577,13 +587,14 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
 
 	rel = table_open(ForeignDataWrapperRelationId, RowExclusiveLock);
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_network_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create foreign-data wrapper \"%s\"",
 						stmt->fdwname),
-				 errhint("Must be superuser to create a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security to create a foreign-data wrapper.")));
 
 	/* For now the owner cannot be specified on create. Use effective user ID. */
 	ownerId = GetUserId();
@@ -694,13 +705,14 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt)
 
 	rel = table_open(ForeignDataWrapperRelationId, RowExclusiveLock);
 
-	/* Must be super user */
-	if (!superuser())
+	/* Must be super user or a member of the pg_network_security role */
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_NETWORK_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to alter foreign-data wrapper \"%s\"",
 						stmt->fdwname),
-				 errhint("Must be superuser to alter a foreign-data wrapper.")));
+				 errhint("Must be superuser or member of pg_network_security to alter a foreign-data wrapper.")));
 
 	tp = SearchSysCacheCopy1(FOREIGNDATAWRAPPERNAME,
 							 CStringGetDatum(stmt->fdwname));
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 33d5b637a1..6fff059699 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -89,5 +89,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9278', oid_symbol => 'ROLE_PG_NETWORK_SECURITY',
+  rolname => 'pg_network_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/foreign_data.out b/src/test/regress/expected/foreign_data.out
index 5385f98a0f..a4f7ee9af4 100644
--- a/src/test/regress/expected/foreign_data.out
+++ b/src/test/regress/expected/foreign_data.out
@@ -77,7 +77,7 @@ DROP FOREIGN DATA WRAPPER foo;
 SET ROLE regress_test_role;
 CREATE FOREIGN DATA WRAPPER foo; -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foo"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 RESET ROLE;
 CREATE FOREIGN DATA WRAPPER foo VALIDATOR postgresql_fdw_validator;
 \dew+
@@ -154,7 +154,7 @@ ERROR:  option "b" provided more than once
 SET ROLE regress_test_role;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 SET ROLE regress_test_role_super;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
 \dew+
@@ -168,13 +168,13 @@ ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD d '5');
 
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role;  -- ERROR
 ERROR:  permission denied to change owner of foreign-data wrapper "foo"
-HINT:  The owner of a foreign-data wrapper must be a superuser.
+HINT:  The owner of a foreign-data wrapper must be a superuser or member of pg_network_security role.
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_test_role_super;
 ALTER ROLE regress_test_role_super NOSUPERUSER;
 SET ROLE regress_test_role_super;
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (ADD e '6');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 RESET ROLE;
 \dew+
                                                         List of foreign-data wrappers
@@ -1185,13 +1185,13 @@ WARNING:  changing the foreign-data wrapper validator can cause the options for
 SET ROLE regress_unprivileged_role;
 CREATE FOREIGN DATA WRAPPER foobar;                             -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foobar"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (gotcha 'true');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OWNER TO regress_unprivileged_role; -- ERROR
 ERROR:  permission denied to change owner of foreign-data wrapper "foo"
-HINT:  Must be superuser to change owner of a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security role to change owner of a foreign-data wrapper.
 DROP FOREIGN DATA WRAPPER foo;                                  -- ERROR
 ERROR:  must be owner of foreign-data wrapper foo
 GRANT USAGE ON FOREIGN DATA WRAPPER foo TO regress_test_role;   -- ERROR
@@ -1218,10 +1218,10 @@ GRANT USAGE ON FOREIGN DATA WRAPPER foo TO regress_unprivileged_role WITH GRANT
 SET ROLE regress_unprivileged_role;
 CREATE FOREIGN DATA WRAPPER foobar;                             -- ERROR
 ERROR:  permission denied to create foreign-data wrapper "foobar"
-HINT:  Must be superuser to create a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
 ALTER FOREIGN DATA WRAPPER foo OPTIONS (gotcha 'true');         -- ERROR
 ERROR:  permission denied to alter foreign-data wrapper "foo"
-HINT:  Must be superuser to alter a foreign-data wrapper.
+HINT:  Must be superuser or member of pg_network_security to alter a foreign-data wrapper.
 DROP FOREIGN DATA WRAPPER foo;                                  -- ERROR
 ERROR:  must be owner of foreign-data wrapper foo
 GRANT USAGE ON FOREIGN DATA WRAPPER postgresql TO regress_test_role; -- WARNING
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 9664276359..adb6813194 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -14,6 +14,7 @@ DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
+DROP ROLE IF EXISTS regress_priv_user9;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -31,6 +32,7 @@ ERROR:  role "regress_priv_user5" already exists
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
+CREATE USER regress_priv_user9;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1849,6 +1851,17 @@ DROP EVENT TRIGGER user8_event_trigger_start;
 DROP EVENT TRIGGER user8_event_trigger_finish;
 DROP FUNCTION user8_event_trigger;
 RESET SESSION AUTHORIZATION;
+-- test pg_network_security authority to create foreign servers
+-- and foreign data wrappers
+GRANT pg_network_security TO regress_priv_user9;
+SET SESSION AUTHORIZATION regress_priv_user9;
+CREATE FOREIGN DATA WRAPPER user9_fdw VALIDATOR postgresql_fdw_validator;
+COMMENT ON FOREIGN DATA WRAPPER user9_fdw IS 'test comment';
+CREATE SERVER user9_server FOREIGN DATA WRAPPER user9_fdw;
+COMMENT ON SERVER user9_server IS 'test comment';
+DROP SERVER user9_server;
+DROP FOREIGN DATA WRAPPER user9_fdw;
+RESET SESSION AUTHORIZATION;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2349,8 +2362,9 @@ DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
-DROP USER regress_priv_user9; -- does not exist
-ERROR:  role "regress_priv_user9" does not exist
+DROP USER regress_priv_user9;
+DROP USER regress_priv_user10; -- does not exist
+ERROR:  role "regress_priv_user10" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index aea13448bc..3bef0b6b80 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -18,6 +18,7 @@ DROP ROLE IF EXISTS regress_priv_user5;
 DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
+DROP ROLE IF EXISTS regress_priv_user9;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -34,6 +35,7 @@ CREATE USER regress_priv_user5;	-- duplicate
 CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
+CREATE USER regress_priv_user9;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1113,6 +1115,18 @@ DROP EVENT TRIGGER user8_event_trigger_finish;
 DROP FUNCTION user8_event_trigger;
 RESET SESSION AUTHORIZATION;
 
+-- test pg_network_security authority to create foreign servers
+-- and foreign data wrappers
+GRANT pg_network_security TO regress_priv_user9;
+SET SESSION AUTHORIZATION regress_priv_user9;
+CREATE FOREIGN DATA WRAPPER user9_fdw VALIDATOR postgresql_fdw_validator;
+COMMENT ON FOREIGN DATA WRAPPER user9_fdw IS 'test comment';
+CREATE SERVER user9_server FOREIGN DATA WRAPPER user9_fdw;
+COMMENT ON SERVER user9_server IS 'test comment';
+DROP SERVER user9_server;
+DROP FOREIGN DATA WRAPPER user9_fdw;
+RESET SESSION AUTHORIZATION;
+
 -- test default ACLs
 \c -
 
@@ -1413,7 +1427,8 @@ DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
-DROP USER regress_priv_user9; -- does not exist
+DROP USER regress_priv_user9;
+DROP USER regress_priv_user10; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

v4-0004-Add-default-role-for-database-operations.patchapplication/octet-stream; name=v4-0004-Add-default-role-for-database-operations.patch; x-unix-mode=0644Download
From fb777b79bbae93eadd389507b853c64aa4cee606 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 29 Jun 2021 11:10:25 -0700
Subject: [PATCH v4 4/5] Add default role for database operations

Reducing the number of administrative tasks that require superuser
privileges by adding a new pg_database_security role and
delegating to it the authority to create, alter and drop most
database interal objects, though not if doing so would have network
or host security implications.
---
 doc/src/sgml/ref/alter_role.sgml              |   2 +
 doc/src/sgml/ref/create_role.sgml             |   3 +-
 src/backend/catalog/aclchk.c                  | 174 +++++++++++++-----
 src/backend/catalog/objectaddress.c           |   3 +-
 src/backend/catalog/pg_proc.c                 |  10 +-
 src/backend/commands/aggregatecmds.c          |   9 +-
 src/backend/commands/alter.c                  |  14 +-
 src/backend/commands/amcmds.c                 |   7 +-
 src/backend/commands/collationcmds.c          |   6 +-
 src/backend/commands/dbcommands.c             |  11 +-
 src/backend/commands/functioncmds.c           |  27 ++-
 src/backend/commands/opclasscmds.c            |  16 +-
 src/backend/commands/proclang.c               |   6 +-
 src/backend/commands/tablecmds.c              |   4 +-
 src/backend/commands/trigger.c                |   4 +-
 src/backend/commands/tsearchcmds.c            |  11 +-
 src/backend/commands/typecmds.c               |  11 +-
 src/backend/commands/user.c                   |  38 ++--
 src/include/catalog/pg_authid.dat             |   5 +
 src/test/regress/expected/alter_generic.out   |   2 +-
 .../regress/expected/create_function_3.out    |   4 +-
 src/test/regress/expected/privileges.out      | 102 +++++++++-
 src/test/regress/sql/privileges.sql           |  94 +++++++++-
 23 files changed, 452 insertions(+), 111 deletions(-)

diff --git a/doc/src/sgml/ref/alter_role.sgml b/doc/src/sgml/ref/alter_role.sgml
index 5aa5648ae7..a6754cb500 100644
--- a/doc/src/sgml/ref/alter_role.sgml
+++ b/doc/src/sgml/ref/alter_role.sgml
@@ -70,6 +70,8 @@ ALTER ROLE { <replaceable class="parameter">role_specification</replaceable> | A
    <link linkend="sql-revoke"><command>REVOKE</command></link> for that.)
    Attributes not mentioned in the command retain their previous settings.
    Database superusers can change any of these settings for any role.
+   Users with membership in the <literal>pg_database_security</literal> role
+   may change the <literal>BYPASSRLS</literal> setting.
    Roles having <literal>CREATEROLE</literal> privilege can change any of these
    settings except <literal>SUPERUSER</literal>, <literal>REPLICATION</literal>,
    and <literal>BYPASSRLS</literal>; but only for non-superuser and
diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml
index 9468ff162c..ce1621d48b 100644
--- a/doc/src/sgml/ref/create_role.sgml
+++ b/doc/src/sgml/ref/create_role.sgml
@@ -195,7 +195,8 @@ in sync when changing the above synopsis!
        <para>
         These clauses determine whether a role bypasses every row-level
         security (RLS) policy.  <literal>NOBYPASSRLS</literal> is the default.
-        You must be a superuser to create a new role having
+        You must be a superuser or a member of role
+        <literal>pg_database_security</literal> to create a new role having
         the <literal>BYPASSRLS</literal> attribute.
        </para>
 
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 1316a6e36c..8c43a69c6e 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -3882,9 +3882,11 @@ pg_class_aclmask_ext(Oid table_oid, Oid roleid, AclMode mask,
 		mask &= ~(ACL_INSERT | ACL_UPDATE | ACL_DELETE | ACL_TRUNCATE | ACL_USAGE);
 
 	/*
-	 * Otherwise, superusers bypass all permission-checking.
+	 * Otherwise, superusers and members of the pg_database_security role bypass all
+	 * permission-checking.
 	 */
-	if (superuser_arg(roleid))
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 	{
 		ReleaseSysCache(tuple);
 		return mask;
@@ -3963,8 +3965,12 @@ pg_database_aclmask(Oid db_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4017,8 +4023,12 @@ pg_proc_aclmask(Oid proc_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4071,8 +4081,12 @@ pg_language_aclmask(Oid lang_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4138,8 +4152,12 @@ pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4207,8 +4225,12 @@ pg_namespace_aclmask(Oid nsp_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4489,8 +4511,12 @@ pg_type_aclmask(Oid type_oid, Oid roleid, AclMode mask, AclMaskHow how)
 
 	Form_pg_type typeForm;
 
-	/* Bypass permission checks for superusers */
-	if (superuser_arg(roleid))
+	/*
+	 * Bypass permission checks for superusers and members of the
+	 * pg_database_security role
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return mask;
 
 	/*
@@ -4834,8 +4860,12 @@ pg_class_ownercheck(Oid class_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(class_oid));
@@ -4860,8 +4890,12 @@ pg_type_ownercheck(Oid type_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(type_oid));
@@ -4886,8 +4920,12 @@ pg_oper_ownercheck(Oid oper_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(OPEROID, ObjectIdGetDatum(oper_oid));
@@ -4912,8 +4950,12 @@ pg_proc_ownercheck(Oid proc_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(proc_oid));
@@ -4938,8 +4980,12 @@ pg_language_ownercheck(Oid lan_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(LANGOID, ObjectIdGetDatum(lan_oid));
@@ -4970,8 +5016,12 @@ pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	/* There's no syscache for pg_largeobject_metadata */
@@ -5010,8 +5060,12 @@ pg_namespace_ownercheck(Oid nsp_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(NAMESPACEOID, ObjectIdGetDatum(nsp_oid));
@@ -5067,8 +5121,12 @@ pg_opclass_ownercheck(Oid opc_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(CLAOID, ObjectIdGetDatum(opc_oid));
@@ -5094,8 +5152,12 @@ pg_opfamily_ownercheck(Oid opf_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(OPFAMILYOID, ObjectIdGetDatum(opf_oid));
@@ -5121,8 +5183,12 @@ pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TSDICTOID, ObjectIdGetDatum(dict_oid));
@@ -5148,8 +5214,12 @@ pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(TSCONFIGOID, ObjectIdGetDatum(cfg_oid));
@@ -5265,8 +5335,12 @@ pg_database_ownercheck(Oid db_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			dba;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(DATABASEOID, ObjectIdGetDatum(db_oid));
@@ -5291,8 +5365,12 @@ pg_collation_ownercheck(Oid coll_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(COLLOID, ObjectIdGetDatum(coll_oid));
@@ -5317,8 +5395,12 @@ pg_conversion_ownercheck(Oid conv_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(CONVOID, ObjectIdGetDatum(conv_oid));
@@ -5445,8 +5527,12 @@ pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid)
 	HeapTuple	tuple;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	/*
+	 * Superusers and members of the pg_database_security role bypass all
+	 * permission checking.
+	 */
+	if (superuser_arg(roleid) ||
+		has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	tuple = SearchSysCache1(STATEXTOID, ObjectIdGetDatum(stat_oid));
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 9882e549c4..1a3c50ba56 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -2564,7 +2564,8 @@ check_object_ownership(Oid roleid, ObjectType objtype, ObjectAddress address,
 		case OBJECT_TSTEMPLATE:
 		case OBJECT_ACCESS_METHOD:
 			/* We treat these object types as being owned by superusers */
-			if (!superuser_arg(roleid))
+			if (!superuser_arg(roleid) &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("must be superuser")));
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 1454d2fb67..874f4025b1 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -21,6 +21,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
@@ -694,9 +695,16 @@ ProcedureCreate(const char *procedureName,
 			set_items = (ArrayType *) DatumGetPointer(proconfig);
 			if (set_items)		/* Need a new GUC nesting level */
 			{
+				GucContext	gc;
+
 				save_nestlevel = NewGUCNestLevel();
+				if (superuser() ||
+					has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
+					gc = PGC_SUSET;
+				else
+					gc = PGC_USERSET;
 				ProcessGUCArray(set_items,
-								(superuser() ? PGC_SUSET : PGC_USERSET),
+								gc,
 								PGC_S_SESSION,
 								GUC_ACTION_SAVE);
 			}
diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c
index 046cf2df08..f59ab758fd 100644
--- a/src/backend/commands/aggregatecmds.c
+++ b/src/backend/commands/aggregatecmds.c
@@ -25,6 +25,7 @@
 #include "access/htup_details.h"
 #include "catalog/dependency.h"
 #include "catalog/pg_aggregate.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "commands/alter.h"
@@ -342,7 +343,9 @@ DefineAggregate(ParseState *pstate,
 	if (transTypeType == TYPTYPE_PSEUDO &&
 		!IsPolymorphicType(transTypeId))
 	{
-		if (transTypeId == INTERNALOID && superuser())
+		if (transTypeId == INTERNALOID &&
+			(superuser() ||
+			 has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))
 			 /* okay */ ;
 		else
 			ereport(ERROR,
@@ -383,7 +386,9 @@ DefineAggregate(ParseState *pstate,
 		if (mtransTypeType == TYPTYPE_PSEUDO &&
 			!IsPolymorphicType(mtransTypeId))
 		{
-			if (mtransTypeId == INTERNALOID && superuser())
+			if (mtransTypeId == INTERNALOID &&
+				(superuser() ||
+				 has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))
 				 /* okay */ ;
 			else
 				ereport(ERROR,
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 29249498a9..01cbe45489 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -22,6 +22,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_conversion.h"
 #include "catalog/pg_event_trigger.h"
@@ -206,13 +207,14 @@ AlterObjectRename_internal(Relation rel, Oid objectId, const char *new_name)
 		namespaceId = InvalidOid;
 
 	/* Permission checks ... superusers can always do it */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 	{
 		/* Fail if object does not have an explicit owner */
 		if (Anum_owner <= 0)
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to rename %s",
+					 errmsg("must be superuser or pg_database_security to rename %s",
 							getObjectDescriptionOids(classId, objectId))));
 
 		/* Otherwise, must be owner of the existing object */
@@ -731,7 +733,8 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
 	CheckSetNamespace(oldNspOid, nspOid);
 
 	/* Permission checks ... superusers can always do it */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 	{
 		Datum		owner;
 		Oid			ownerId;
@@ -741,7 +744,7 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
 		if (Anum_owner <= 0)
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to set schema of %s",
+					 errmsg("must be superuser or pg_database_security to set schema of %s",
 							getObjectDescriptionOids(classId, objid))));
 
 		/* Otherwise, must be owner of the existing object */
@@ -972,7 +975,8 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
 		bool	   *replaces;
 
 		/* Superusers can bypass permission checks */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		{
 			/* must be owner */
 			if (!has_privs_of_role(GetUserId(), old_ownerId))
diff --git a/src/backend/commands/amcmds.c b/src/backend/commands/amcmds.c
index 188109e474..4896fc0193 100644
--- a/src/backend/commands/amcmds.c
+++ b/src/backend/commands/amcmds.c
@@ -20,11 +20,13 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/pg_am.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "commands/defrem.h"
 #include "miscadmin.h"
 #include "parser/parse_func.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/rel.h"
@@ -54,12 +56,13 @@ CreateAccessMethod(CreateAmStmt *stmt)
 	rel = table_open(AccessMethodRelationId, RowExclusiveLock);
 
 	/* Must be super user */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create access method \"%s\"",
 						stmt->amname),
-				 errhint("Must be superuser to create an access method.")));
+				 errhint("Must be superuser or pg_database_security to create an access method.")));
 
 	/* Check if name is used */
 	amoid = GetSysCacheOid1(AMNAME, Anum_pg_am_oid,
diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c
index ebb0994db3..e487e75b0e 100644
--- a/src/backend/commands/collationcmds.c
+++ b/src/backend/commands/collationcmds.c
@@ -21,6 +21,7 @@
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "commands/alter.h"
 #include "commands/collationcmds.h"
@@ -506,10 +507,11 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
 	Oid			nspid = PG_GETARG_OID(0);
 	int			ncreated = 0;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to import system collations")));
+				 errmsg("must be superuser or pg_database_security to import system collations")));
 
 	if (!SearchSysCacheExists1(NAMESPACEOID, ObjectIdGetDatum(nspid)))
 		ereport(ERROR,
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 2b159b60eb..9b1a38ffd6 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -763,7 +763,9 @@ check_encoding_locale_matches(int encoding, const char *collate, const char *cty
 #ifdef WIN32
 		  encoding == PG_UTF8 ||
 #endif
-		  (encoding == PG_SQL_ASCII && superuser())))
+		  (encoding == PG_SQL_ASCII &&
+		   (superuser() ||
+			has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))))
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				 errmsg("encoding \"%s\" does not match locale \"%s\"",
@@ -778,7 +780,9 @@ check_encoding_locale_matches(int encoding, const char *collate, const char *cty
 #ifdef WIN32
 		  encoding == PG_UTF8 ||
 #endif
-		  (encoding == PG_SQL_ASCII && superuser())))
+		  (encoding == PG_SQL_ASCII &&
+		   (superuser() ||
+			has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY)))))
 		ereport(ERROR,
 				(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 				 errmsg("encoding \"%s\" does not match locale \"%s\"",
@@ -1923,7 +1927,8 @@ have_createdb_privilege(void)
 	HeapTuple	utup;
 
 	/* Superusers can always do everything */
-	if (superuser())
+	if (superuser() ||
+		has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		return true;
 
 	utup = SearchSysCache1(AUTHOID, ObjectIdGetDatum(GetUserId()));
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 736d04780a..ac39ced1c7 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -41,6 +41,7 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/pg_aggregate.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_cast.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
@@ -712,10 +713,11 @@ interpret_func_support(DefElem *defel)
 	 * you be superuser to specify a support function, so privilege on the
 	 * support function is moot.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to specify a support function")));
+				 errmsg("must be superuser or pg_database_security to specify a support function")));
 
 	return procOid;
 }
@@ -1143,7 +1145,8 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
 	else
 	{
 		/* if untrusted language, must be superuser */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			aclcheck_error(ACLCHECK_NO_PRIV, OBJECT_LANGUAGE,
 						   NameStr(languageStruct->lanname));
 	}
@@ -1157,10 +1160,11 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt)
 	 * leakproof functions can see tuples which have not yet been filtered out
 	 * by security barrier views or row-level security policies.
 	 */
-	if (isLeakProof && !superuser())
+	if (isLeakProof && !superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("only superuser can define a leakproof function")));
+				 errmsg("only superuser or pg_database_security can define a leakproof function")));
 
 	if (transformDefElem)
 	{
@@ -1441,10 +1445,11 @@ AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt)
 	if (leakproof_item)
 	{
 		procForm->proleakproof = intVal(leakproof_item->arg);
-		if (procForm->proleakproof && !superuser())
+		if (procForm->proleakproof && !superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("only superuser can define a leakproof function")));
+					 errmsg("only superuser or pg_database_security can define a leakproof function")));
 	}
 	if (cost_item)
 	{
@@ -1685,10 +1690,11 @@ CreateCast(CreateCastStmt *stmt)
 		 * Must be superuser to create binary-compatible casts, since
 		 * erroneous casts can easily crash the backend.
 		 */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to create a cast WITHOUT FUNCTION")));
+					 errmsg("must be superuser or pg_database_security to create a cast WITHOUT FUNCTION")));
 
 		/*
 		 * Also, insist that the types match as to size, alignment, and
@@ -2148,7 +2154,8 @@ ExecuteDoStmt(DoStmt *stmt, bool atomic)
 	else
 	{
 		/* if untrusted language, must be superuser */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			aclcheck_error(ACLCHECK_NO_PRIV, OBJECT_LANGUAGE,
 						   NameStr(languageStruct->lanname));
 	}
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index fad39e2b75..d3f7412ba2 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -30,6 +30,7 @@
 #include "catalog/pg_am.h"
 #include "catalog/pg_amop.h"
 #include "catalog/pg_amproc.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
 #include "catalog/pg_operator.h"
@@ -405,10 +406,11 @@ DefineOpClass(CreateOpClassStmt *stmt)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create an operator class")));
+				 errmsg("must be superuser or pg_database_security to create an operator class")));
 
 	/* Look up the datatype */
 	typeoid = typenameTypeId(NULL, stmt->datatype);
@@ -786,10 +788,11 @@ DefineOpFamily(CreateOpFamilyStmt *stmt)
 	 * Currently, we require superuser privileges to create an opfamily. See
 	 * comments in DefineOpClass.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create an operator family")));
+				 errmsg("must be superuser or pg_database_security to create an operator family")));
 
 	/* Insert pg_opfamily catalog entry */
 	return CreateOpFamily(stmt->amname, opfname, namespaceoid, amoid);
@@ -846,10 +849,11 @@ AlterOpFamily(AlterOpFamilyStmt *stmt)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to alter an operator family")));
+				 errmsg("must be superuser or pg_database_security to alter an operator family")));
 
 	/*
 	 * ADD and DROP cases need separate code from here on down.
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index 81598d3e08..1d40425deb 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -18,6 +18,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
@@ -62,10 +63,11 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
 	/*
 	 * Check permission
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create custom procedural language")));
+				 errmsg("must be superuser or pg_database_security to create custom procedural language")));
 
 	/*
 	 * Lookup the PL handler function and check that it is of the expected
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 97a9725df7..308829fdf8 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -33,6 +33,7 @@
 #include "catalog/objectaccess.h"
 #include "catalog/partition.h"
 #include "catalog/pg_am.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_depend.h"
@@ -13227,7 +13228,8 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lock
 		if (!recursing)
 		{
 			/* Superusers can always do it */
-			if (!superuser())
+			if (!superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			{
 				Oid			namespaceOid = tuple_class->relnamespace;
 				AclResult	aclresult;
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 07c73f39de..7a46dcdd75 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -26,6 +26,7 @@
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
 #include "catalog/partition.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_proc.h"
@@ -1574,7 +1575,8 @@ EnableDisableTrigger(Relation rel, const char *tgname,
 			/* system trigger ... ok to process? */
 			if (skip_system)
 				continue;
-			if (!superuser())
+			if (!superuser() &&
+				!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("permission denied: \"%s\" is a system trigger",
diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c
index e06fb32b3d..c94e651fc9 100644
--- a/src/backend/commands/tsearchcmds.c
+++ b/src/backend/commands/tsearchcmds.c
@@ -25,6 +25,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_ts_config.h"
@@ -188,10 +189,11 @@ DefineTSParser(List *names, List *parameters)
 	Oid			namespaceoid;
 	ObjectAddress address;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create text search parsers")));
+				 errmsg("must be superuser or pg_database_security to create text search parsers")));
 
 	prsRel = table_open(TSParserRelationId, RowExclusiveLock);
 
@@ -695,10 +697,11 @@ DefineTSTemplate(List *names, List *parameters)
 	char	   *tmplname;
 	ObjectAddress address;
 
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create text search templates")));
+				 errmsg("must be superuser or pg_database_security to create text search templates")));
 
 	/* Convert list of names to a name and namespace */
 	namespaceoid = QualifiedNameGetCreationNamespace(names, &tmplname);
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 58ec65c6af..3c89214fe5 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -211,10 +211,11 @@ DefineType(ParseState *pstate, List *names, List *parameters)
 	 *
 	 * XXX re-enable NOT_USED code sections below if you remove this test.
 	 */
-	if (!superuser())
+	if (!superuser() &&
+		!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to create a base type")));
+				 errmsg("must be superuser or pg_database_security to create a base type")));
 
 	/* Convert list of names to a name and namespace */
 	typeNamespace = QualifiedNameGetCreationNamespace(names, &typeName);
@@ -3756,7 +3757,8 @@ AlterTypeOwner(List *names, Oid newOwnerId, ObjectType objecttype)
 	if (typTup->typowner != newOwnerId)
 	{
 		/* Superusers can always do it */
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 		{
 			/* Otherwise, must be owner of the existing object */
 			if (!pg_type_ownercheck(typTup->oid, GetUserId()))
@@ -4288,7 +4290,8 @@ AlterType(AlterTypeStmt *stmt)
 	 */
 	if (requireSuper)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to alter a type")));
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 65bb733958..50b60b6bef 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -295,17 +295,19 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 	}
 	else if (isreplication)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to create replication users")));
+					 errmsg("must be superuser or member of role pg_database_security to create replication users")));
 	}
 	else if (bypassrls)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to create bypassrls users")));
+					 errmsg("must be superuser or member of role pg_database_security to create bypassrls users")));
 	}
 	else
 	{
@@ -709,10 +711,10 @@ AlterRole(AlterRoleStmt *stmt)
 	roleid = authform->oid;
 
 	/*
-	 * To mess with a superuser or replication role in any way you gotta be
-	 * superuser.  We also insist on superuser to change the BYPASSRLS
-	 * property.  Otherwise, if you don't have createrole, you're only allowed
-	 * to change your own password.
+	 * To mess with a superuser in any way you gotta be superuser.  We also
+	 * insist on superuser or pg_database_security to change the REPLICATION
+	 * and BYPASSRLS properties.  Otherwise, if you don't have createrole,
+	 * you're only allowed to change your own password.
 	 */
 	if (authform->rolsuper || issuper >= 0)
 	{
@@ -723,17 +725,19 @@ AlterRole(AlterRoleStmt *stmt)
 	}
 	else if (authform->rolreplication || isreplication >= 0)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to alter replication roles or change replication attribute")));
 	}
 	else if (bypassrls >= 0)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to change bypassrls attribute")));
+					 errmsg("must be superuser or member of role pg_database_security to change bypassrls attribute")));
 	}
 	else if (!have_createrole_privilege())
 	{
@@ -976,11 +980,12 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
 
 	if (!stmt->role && !stmt->database)
 	{
-		/* Must be superuser to alter settings globally. */
-		if (!superuser())
+		/* Must be superuser or pg_database_security to alter settings globally. */
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to alter settings globally")));
+					 errmsg("must be superuser or member of role pg_database_security to alter settings globally")));
 	}
 
 	AlterSetting(databaseid, roleid, stmt->setstmt);
@@ -1254,10 +1259,11 @@ RenameRole(const char *oldname, const char *newname)
 	 */
 	if (((Form_pg_authid) GETSTRUCT(oldtuple))->rolsuper)
 	{
-		if (!superuser())
+		if (!superuser() &&
+			!has_privs_of_role(GetUserId(), ROLE_PG_DATABASE_SECURITY))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-					 errmsg("must be superuser to rename superusers")));
+					 errmsg("must be superuser or member of role pg_database_security to rename superusers")));
 	}
 	else
 	{
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 6fff059699..7c9e407b41 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -94,5 +94,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9279', oid_symbol => 'ROLE_PG_DATABASE_SECURITY',
+  rolname => 'pg_database_security', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/test/regress/expected/alter_generic.out b/src/test/regress/expected/alter_generic.out
index 505eb7ede5..64e1ab571b 100644
--- a/src/test/regress/expected/alter_generic.out
+++ b/src/test/regress/expected/alter_generic.out
@@ -366,7 +366,7 @@ CREATE ROLE regress_alter_generic_user5 NOSUPERUSER;
 CREATE OPERATOR FAMILY alt_opf5 USING btree;
 SET ROLE regress_alter_generic_user5;
 ALTER OPERATOR FAMILY alt_opf5 USING btree ADD OPERATOR 1 < (int4, int2), FUNCTION 1 btint42cmp(int4, int2);
-ERROR:  must be superuser to alter an operator family
+ERROR:  must be superuser or pg_database_security to alter an operator family
 RESET ROLE;
 ERROR:  current transaction is aborted, commands ignored until end of transaction block
 DROP OPERATOR FAMILY alt_opf5 USING btree;
diff --git a/src/test/regress/expected/create_function_3.out b/src/test/regress/expected/create_function_3.out
index 5955859bb5..33a5b689c7 100644
--- a/src/test/regress/expected/create_function_3.out
+++ b/src/test/regress/expected/create_function_3.out
@@ -166,10 +166,10 @@ SET SESSION AUTHORIZATION regress_unpriv_user;
 SET search_path TO temp_func_test, public;
 ALTER FUNCTION functest_E_1(int) NOT LEAKPROOF;
 ALTER FUNCTION functest_E_2(int) LEAKPROOF;
-ERROR:  only superuser can define a leakproof function
+ERROR:  only superuser or pg_database_security can define a leakproof function
 CREATE FUNCTION functest_E_3(int) RETURNS bool LANGUAGE 'sql'
        LEAKPROOF AS 'SELECT $1 < 200';	-- fail
-ERROR:  only superuser can define a leakproof function
+ERROR:  only superuser or pg_database_security can define a leakproof function
 RESET SESSION AUTHORIZATION;
 --
 -- CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index adb6813194..6fc395489b 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -15,6 +15,7 @@ DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
+DROP ROLE IF EXISTS regress_priv_user10;
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
  lo_unlink 
 -----------
@@ -33,6 +34,7 @@ CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
+CREATE USER regress_priv_user10;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -1862,6 +1864,101 @@ COMMENT ON SERVER user9_server IS 'test comment';
 DROP SERVER user9_server;
 DROP FOREIGN DATA WRAPPER user9_fdw;
 RESET SESSION AUTHORIZATION;
+-- test pg_database_security authority over numerous database objects
+GRANT pg_database_security TO regress_priv_user10;
+SET SESSION AUTHORIZATION regress_priv_user10;
+CREATE ACCESS METHOD user10_am TYPE INDEX HANDLER gisthandler;
+CREATE CAST (text AS json) WITHOUT FUNCTION;
+CREATE DATABASE user10_db;
+GRANT ALL ON DATABASE user10_db TO regress_priv_user10;
+CREATE FUNCTION user10_event_trigger_func() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user10_event_trigger ON ddl_command_start -- no
+   EXECUTE PROCEDURE user10_event_trigger_func();
+ERROR:  permission denied to create event trigger "user10_event_trigger"
+HINT:  Must be superuser or a member of the pg_host_security role to create an event trigger.
+CREATE FOREIGN DATA WRAPPER user10_fdw VALIDATOR postgresql_fdw_validator; -- no
+ERROR:  permission denied to create foreign-data wrapper "user10_fdw"
+HINT:  Must be superuser or member of pg_network_security to create a foreign-data wrapper.
+CREATE FUNCTION user10_secdef_func(boolean) RETURNS text
+  AS 'select $1::text;'
+  LANGUAGE sql SECURITY DEFINER;
+CREATE INDEX user10_index ON pg_catalog.pg_class(oid); -- no
+ERROR:  permission denied: "pg_class" is a system catalog
+CREATE LANGUAGE user10_lang HANDLER plpgsql_call_handler;
+CREATE OPERATOR CLASS user10_ops
+    FOR TYPE box USING gist AS
+    OPERATOR 1  <<,
+    OPERATOR 2  &<,
+    OPERATOR 3  &&,
+    OPERATOR 4  &>,
+    OPERATOR 5  >>,
+    OPERATOR 6  ~=,
+    OPERATOR 7  @>,
+    OPERATOR 8  <@,
+    OPERATOR 9  &<|,
+    OPERATOR 10 <<|,
+    OPERATOR 11 |>>,
+    OPERATOR 12 |&>,
+    FUNCTION 1  gist_box_consistent(internal, box, smallint, oid, internal),
+    FUNCTION 2  gist_box_union(internal, internal),
+    FUNCTION 5  gist_box_penalty(internal, internal, internal),
+    FUNCTION 6  gist_box_picksplit(internal, internal),
+    FUNCTION 7  gist_box_same(box, box, internal);
+CREATE TABLE user10_tbl (id integer, str text);
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION user10_publication FOR TABLE user10_tbl;
+RESET client_min_messages;
+CREATE RULE user10_rule_ins AS ON INSERT TO pg_catalog.pg_class -- no
+  DO INSTEAD DELETE FROM pg_catalog.pg_am;
+ERROR:  permission denied: "pg_class" is a system catalog
+CREATE SCHEMA user10_schema;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user10_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false); -- no
+ERROR:  must be superuser or a member of the pg_logical_replication role to create subscriptions
+RESET client_min_messages;
+CREATE STATISTICS user10_stats ON id, str FROM user10_tbl;
+CREATE TEXT SEARCH CONFIGURATION user10_tsconfig (COPY=english);
+CREATE TEXT SEARCH DICTIONARY user10_tsdict (Template=ispell, DictFile=ispell_sample, AffFile=ispell_sample);
+CREATE TEXT SEARCH PARSER user10_tsparser
+    (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE user10_tstemplate (lexize=dsimple_lexize);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION user10_trigger_func() RETURNS trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_trigger';
+END
+$$ LANGUAGE PLPGSQL;
+CREATE TRIGGER user10_trigger
+    BEFORE INSERT OR UPDATE ON user10_tbl
+    FOR EACH ROW
+    EXECUTE PROCEDURE user10_trigger_func();
+CREATE TYPE user10_type;
+CREATE VIEW user10_view AS SELECT * FROM user10_tbl;
+DROP ACCESS METHOD user10_am;
+DROP CAST (text AS json);
+REVOKE ALL ON DATABASE user10_db FROM regress_priv_user10;
+DROP DATABASE user10_db;
+DROP FUNCTION user10_event_trigger_func();
+DROP FUNCTION user10_secdef_func(boolean);
+DROP LANGUAGE user10_lang;
+DROP OPERATOR CLASS user10_ops USING gist;
+DROP OPERATOR FAMILY user10_ops USING gist;
+DROP PUBLICATION user10_publication;
+DROP SCHEMA user10_schema;
+DROP STATISTICS user10_stats;
+DROP TEXT SEARCH CONFIGURATION user10_tsconfig;
+DROP TEXT SEARCH DICTIONARY user10_tsdict;
+DROP TRIGGER user10_trigger ON user10_tbl;
+DROP FUNCTION user10_trigger_func();
+DROP TYPE user10_type;
+DROP VIEW user10_view;
+DROP TABLE user10_tbl;
 -- test default ACLs
 \c -
 CREATE SCHEMA testns;
@@ -2363,8 +2460,9 @@ DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
-DROP USER regress_priv_user10; -- does not exist
-ERROR:  role "regress_priv_user10" does not exist
+DROP USER regress_priv_user10;
+DROP USER regress_priv_user11; -- does not exist
+ERROR:  role "regress_priv_user11" does not exist
 -- permissions with LOCK TABLE
 CREATE USER regress_locktable_user;
 CREATE TABLE lock_table (a int);
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 3bef0b6b80..bda5350ab0 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -19,6 +19,7 @@ DROP ROLE IF EXISTS regress_priv_user6;
 DROP ROLE IF EXISTS regress_priv_user7;
 DROP ROLE IF EXISTS regress_priv_user8;
 DROP ROLE IF EXISTS regress_priv_user9;
+DROP ROLE IF EXISTS regress_priv_user10;
 
 SELECT lo_unlink(oid) FROM pg_largeobject_metadata WHERE oid >= 1000 AND oid < 3000 ORDER BY oid;
 
@@ -36,6 +37,7 @@ CREATE USER regress_priv_user6;
 CREATE USER regress_priv_user7;
 CREATE USER regress_priv_user8;
 CREATE USER regress_priv_user9;
+CREATE USER regress_priv_user10;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1127,6 +1129,95 @@ DROP SERVER user9_server;
 DROP FOREIGN DATA WRAPPER user9_fdw;
 RESET SESSION AUTHORIZATION;
 
+-- test pg_database_security authority over numerous database objects
+GRANT pg_database_security TO regress_priv_user10;
+SET SESSION AUTHORIZATION regress_priv_user10;
+CREATE ACCESS METHOD user10_am TYPE INDEX HANDLER gisthandler;
+CREATE CAST (text AS json) WITHOUT FUNCTION;
+CREATE DATABASE user10_db;
+GRANT ALL ON DATABASE user10_db TO regress_priv_user10;
+CREATE FUNCTION user10_event_trigger_func() RETURNS event_trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_event_trigger: % %', tg_event, tg_tag;
+END
+$$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER user10_event_trigger ON ddl_command_start -- no
+   EXECUTE PROCEDURE user10_event_trigger_func();
+CREATE FOREIGN DATA WRAPPER user10_fdw VALIDATOR postgresql_fdw_validator; -- no
+CREATE FUNCTION user10_secdef_func(boolean) RETURNS text
+  AS 'select $1::text;'
+  LANGUAGE sql SECURITY DEFINER;
+CREATE INDEX user10_index ON pg_catalog.pg_class(oid); -- no
+CREATE LANGUAGE user10_lang HANDLER plpgsql_call_handler;
+CREATE OPERATOR CLASS user10_ops
+    FOR TYPE box USING gist AS
+    OPERATOR 1  <<,
+    OPERATOR 2  &<,
+    OPERATOR 3  &&,
+    OPERATOR 4  &>,
+    OPERATOR 5  >>,
+    OPERATOR 6  ~=,
+    OPERATOR 7  @>,
+    OPERATOR 8  <@,
+    OPERATOR 9  &<|,
+    OPERATOR 10 <<|,
+    OPERATOR 11 |>>,
+    OPERATOR 12 |&>,
+    FUNCTION 1  gist_box_consistent(internal, box, smallint, oid, internal),
+    FUNCTION 2  gist_box_union(internal, internal),
+    FUNCTION 5  gist_box_penalty(internal, internal, internal),
+    FUNCTION 6  gist_box_picksplit(internal, internal),
+    FUNCTION 7  gist_box_same(box, box, internal);
+CREATE TABLE user10_tbl (id integer, str text);
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION user10_publication FOR TABLE user10_tbl;
+RESET client_min_messages;
+CREATE RULE user10_rule_ins AS ON INSERT TO pg_catalog.pg_class -- no
+  DO INSTEAD DELETE FROM pg_catalog.pg_am;
+CREATE SCHEMA user10_schema;
+SET client_min_messages = 'ERROR';
+CREATE SUBSCRIPTION user10_subscription CONNECTION 'dbname=nosuchdb' PUBLICATION nosuchpub WITH (connect = false, enabled = false, slot_name = NONE, create_slot = false); -- no
+RESET client_min_messages;
+CREATE STATISTICS user10_stats ON id, str FROM user10_tbl;
+CREATE TEXT SEARCH CONFIGURATION user10_tsconfig (COPY=english);
+CREATE TEXT SEARCH DICTIONARY user10_tsdict (Template=ispell, DictFile=ispell_sample, AffFile=ispell_sample);
+CREATE TEXT SEARCH PARSER user10_tsparser
+    (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE user10_tstemplate (lexize=dsimple_lexize);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION user10_trigger_func() RETURNS trigger AS $$
+BEGIN
+    RAISE DEBUG 'user10_trigger';
+END
+$$ LANGUAGE PLPGSQL;
+CREATE TRIGGER user10_trigger
+    BEFORE INSERT OR UPDATE ON user10_tbl
+    FOR EACH ROW
+    EXECUTE PROCEDURE user10_trigger_func();
+CREATE TYPE user10_type;
+CREATE VIEW user10_view AS SELECT * FROM user10_tbl;
+DROP ACCESS METHOD user10_am;
+DROP CAST (text AS json);
+REVOKE ALL ON DATABASE user10_db FROM regress_priv_user10;
+DROP DATABASE user10_db;
+DROP FUNCTION user10_event_trigger_func();
+DROP FUNCTION user10_secdef_func(boolean);
+DROP LANGUAGE user10_lang;
+DROP OPERATOR CLASS user10_ops USING gist;
+DROP OPERATOR FAMILY user10_ops USING gist;
+DROP PUBLICATION user10_publication;
+DROP SCHEMA user10_schema;
+DROP STATISTICS user10_stats;
+DROP TEXT SEARCH CONFIGURATION user10_tsconfig;
+DROP TEXT SEARCH DICTIONARY user10_tsdict;
+DROP TRIGGER user10_trigger ON user10_tbl;
+DROP FUNCTION user10_trigger_func();
+DROP TYPE user10_type;
+DROP VIEW user10_view;
+DROP TABLE user10_tbl;
+
 -- test default ACLs
 \c -
 
@@ -1428,7 +1519,8 @@ DROP USER regress_priv_user6;
 DROP USER regress_priv_user7;
 DROP USER regress_priv_user8;
 DROP USER regress_priv_user9;
-DROP USER regress_priv_user10; -- does not exist
+DROP USER regress_priv_user10;
+DROP USER regress_priv_user11; -- does not exist
 
 
 -- permissions with LOCK TABLE
-- 
2.21.1 (Apple Git-122.3)

v4-0005-Allow-SET-and-ALTER-SYSTEM-SET-by-non-superusers.patchapplication/octet-stream; name=v4-0005-Allow-SET-and-ALTER-SYSTEM-SET-by-non-superusers.patch; x-unix-mode=0644Download
From 4df9b31d3da979f7557ec53853d7e98e3f1acb2b Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Wed, 30 Jun 2021 07:18:33 -0700
Subject: [PATCH v4 5/5] Allow SET and ALTER SYSTEM SET by non-superusers

Reducing the number of administrative tasks that require superuser
privileges by allowing non-superusers to execute SET and ALTER
SYSTEM SET on most GUC variables, provided the user is a member of
the appropriate security role.

Each GUC variable, even USERSET ones, are associated with one of
pg_database_security, pg_host_security, and pg_network_security.
Users must be a member of the associated role to perform ALTER
SYSTEM SET on the variable.  For non-USERSET variables, the same
requirement is enforced to SET the variable.  In no case does this
prevent a user who previously could perform a SET or ALTER SYSTEM
SET operation from doing so now.
---
 contrib/auth_delay/auth_delay.c               |    1 +
 contrib/auto_explain/auto_explain.c           |   12 +
 contrib/pg_prewarm/autoprewarm.c              |    2 +
 .../pg_stat_statements/pg_stat_statements.c   |    5 +
 contrib/pg_trgm/trgm_op.c                     |    3 +
 contrib/sepgsql/hooks.c                       |    2 +
 src/backend/utils/misc/guc.c                  |  756 +++--
 src/include/utils/guc.h                       |   13 +
 src/include/utils/guc_tables.h                |    1 +
 src/pl/plperl/plperl.c                        |    8 +-
 src/pl/plpgsql/src/pl_handler.c               |   10 +-
 src/pl/tcl/pltcl.c                            |    4 +-
 .../modules/delay_execution/delay_execution.c |    1 +
 .../ssl_passphrase_func.c                     |    1 +
 src/test/modules/worker_spi/worker_spi.c      |    3 +
 src/test/regress/expected/guc_priv_admin.out  | 1817 ++++++++++++
 .../regress/expected/guc_priv_host_admin.out  | 2144 ++++++++++++++
 .../guc_priv_logical_replication_user.out     | 2518 +++++++++++++++++
 .../expected/guc_priv_network_admin.out       | 2442 ++++++++++++++++
 .../expected/guc_priv_sandbox_admin.out       | 2264 +++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/guc_priv_admin.sql       | 1445 ++++++++++
 src/test/regress/sql/guc_priv_host_admin.sql  | 1442 ++++++++++
 .../sql/guc_priv_logical_replication_user.sql | 1442 ++++++++++
 .../regress/sql/guc_priv_network_admin.sql    | 1442 ++++++++++
 .../regress/sql/guc_priv_sandbox_admin.sql    | 1442 ++++++++++
 26 files changed, 19026 insertions(+), 196 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_admin.out
 create mode 100644 src/test/regress/expected/guc_priv_host_admin.out
 create mode 100644 src/test/regress/expected/guc_priv_logical_replication_user.out
 create mode 100644 src/test/regress/expected/guc_priv_network_admin.out
 create mode 100644 src/test/regress/expected/guc_priv_sandbox_admin.out
 create mode 100644 src/test/regress/sql/guc_priv_admin.sql
 create mode 100644 src/test/regress/sql/guc_priv_host_admin.sql
 create mode 100644 src/test/regress/sql/guc_priv_logical_replication_user.sql
 create mode 100644 src/test/regress/sql/guc_priv_network_admin.sql
 create mode 100644 src/test/regress/sql/guc_priv_sandbox_admin.sql

diff --git a/contrib/auth_delay/auth_delay.c b/contrib/auth_delay/auth_delay.c
index 5820ac328d..56a32ff2c3 100644
--- a/contrib/auth_delay/auth_delay.c
+++ b/contrib/auth_delay/auth_delay.c
@@ -63,6 +63,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_NETWORK_SECURITY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index e9092ba359..1c9b77a91a 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -100,6 +100,7 @@ _PG_init(void)
 							-1,
 							-1, INT_MAX,
 							PGC_SUSET,
+							GUC_HOST_SECURITY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
@@ -111,6 +112,7 @@ _PG_init(void)
 							 &auto_explain_log_analyze,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -122,6 +124,7 @@ _PG_init(void)
 							 &auto_explain_log_settings,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -133,6 +136,7 @@ _PG_init(void)
 							 &auto_explain_log_verbose,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -144,6 +148,7 @@ _PG_init(void)
 							 &auto_explain_log_buffers,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -155,6 +160,7 @@ _PG_init(void)
 							 &auto_explain_log_wal,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -166,6 +172,7 @@ _PG_init(void)
 							 &auto_explain_log_triggers,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -178,6 +185,7 @@ _PG_init(void)
 							 EXPLAIN_FORMAT_TEXT,
 							 format_options,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -190,6 +198,7 @@ _PG_init(void)
 							 LOG,
 							 loglevel_options,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -201,6 +210,7 @@ _PG_init(void)
 							 &auto_explain_log_nested_statements,
 							 false,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -212,6 +222,7 @@ _PG_init(void)
 							 &auto_explain_log_timing,
 							 true,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -225,6 +236,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_SUSET,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c
index b3f73ea92d..ec9952c243 100644
--- a/contrib/pg_prewarm/autoprewarm.c
+++ b/contrib/pg_prewarm/autoprewarm.c
@@ -116,6 +116,7 @@ _PG_init(void)
 							300,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_HOST_SECURITY,
 							GUC_UNIT_S,
 							NULL,
 							NULL,
@@ -131,6 +132,7 @@ _PG_init(void)
 							 &autoprewarm,
 							 true,
 							 PGC_POSTMASTER,
+							 GUC_HOST_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c
index 07fe0e7cda..741e49a346 100644
--- a/contrib/pg_stat_statements/pg_stat_statements.c
+++ b/contrib/pg_stat_statements/pg_stat_statements.c
@@ -387,6 +387,7 @@ _PG_init(void)
 							100,
 							INT_MAX,
 							PGC_POSTMASTER,
+							GUC_DATABASE_SECURITY,
 							0,
 							NULL,
 							NULL,
@@ -399,6 +400,7 @@ _PG_init(void)
 							 PGSS_TRACK_TOP,
 							 track_options,
 							 PGC_SUSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -410,6 +412,7 @@ _PG_init(void)
 							 &pgss_track_utility,
 							 true,
 							 PGC_SUSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -421,6 +424,7 @@ _PG_init(void)
 							 &pgss_track_planning,
 							 false,
 							 PGC_SUSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -432,6 +436,7 @@ _PG_init(void)
 							 &pgss_save,
 							 true,
 							 PGC_SIGHUP,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_trgm/trgm_op.c b/contrib/pg_trgm/trgm_op.c
index fb38135f7a..cc06df268b 100644
--- a/contrib/pg_trgm/trgm_op.c
+++ b/contrib/pg_trgm/trgm_op.c
@@ -72,6 +72,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -84,6 +85,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
@@ -96,6 +98,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_DATABASE_SECURITY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/sepgsql/hooks.c b/contrib/sepgsql/hooks.c
index 19a3ffb7ff..f711b20a35 100644
--- a/contrib/sepgsql/hooks.c
+++ b/contrib/sepgsql/hooks.c
@@ -432,6 +432,7 @@ _PG_init(void)
 							 &sepgsql_permissive,
 							 false,
 							 PGC_SIGHUP,
+							 GUC_HOST_SECURITY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
@@ -450,6 +451,7 @@ _PG_init(void)
 							 &sepgsql_debug_audit,
 							 false,
 							 PGC_USERSET,
+							 GUC_HOST_SECURITY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 480e8cd199..036658e039 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -972,6 +972,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of sequential-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_seqscan,
@@ -982,6 +983,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_indexscan,
@@ -992,6 +994,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-only-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_indexonlyscan,
@@ -1002,6 +1005,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of bitmap-scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_bitmapscan,
@@ -1012,6 +1016,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of TID scan plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_tidscan,
@@ -1022,6 +1027,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of explicit sort steps."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_sort,
@@ -1031,7 +1037,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of incremental sort steps."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&enable_incremental_sort,
 		true,
@@ -1041,6 +1048,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hashed aggregation plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_hashagg,
@@ -1051,6 +1059,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of materialization."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_material,
@@ -1061,6 +1070,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_resultcache", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of result caching."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_resultcache,
@@ -1071,6 +1081,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of nested-loop join plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_nestloop,
@@ -1081,6 +1092,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of merge join plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_mergejoin,
@@ -1091,6 +1103,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hash join plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_hashjoin,
@@ -1101,6 +1114,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of gather merge plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_gathermerge,
@@ -1111,6 +1125,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise join."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_join,
@@ -1121,6 +1136,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise aggregation and grouping."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_aggregate,
@@ -1131,6 +1147,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel append plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_append,
@@ -1141,6 +1158,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel hash plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_hash,
@@ -1153,6 +1171,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Allows the query planner and executor to compare partition "
 						 "bounds to conditions in the query to determine which "
 						 "partitions must be scanned."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_partition_pruning,
@@ -1163,6 +1182,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of async append plans."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_async_append,
@@ -1174,6 +1194,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables genetic query optimization."),
 			gettext_noop("This algorithm attempts to do planning without "
 						 "exhaustive searching."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&enable_geqo,
@@ -1185,6 +1206,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"is_superuser", PGC_INTERNAL, UNGROUPED,
 			gettext_noop("Shows whether the current user is a superuser."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&session_auth_is_superuser,
@@ -1194,7 +1216,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Enables advertising the server via Bonjour."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&enable_bonjour,
 		false,
@@ -1203,7 +1226,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Collects transaction commit time."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&track_commit_timestamp,
 		false,
@@ -1212,7 +1236,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Enables SSL connections."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&EnableSSL,
 		false,
@@ -1221,7 +1246,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Also use ssl_passphrase_command during server reload."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&ssl_passphrase_command_supports_reload,
 		false,
@@ -1230,7 +1256,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Give priority to server ciphersuite order."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&SSLPreferServerCiphers,
 		true,
@@ -1242,7 +1269,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("The server will use the fsync() system call in several places to make "
 						 "sure that updates are physically written to disk. This insures "
 						 "that a database cluster will recover to a consistent state after "
-						 "an operating system or hardware crash.")
+						 "an operating system or hardware crash."),
+			GUC_HOST_SECURITY
 		},
 		&enableFsync,
 		true,
@@ -1257,6 +1285,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(but still report a warning), and continue processing. This "
 						 "behavior could cause crashes or other serious problems. Only "
 						 "has an effect if checksums are enabled."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_checksum_failure,
@@ -1271,6 +1300,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "zero_damaged_pages to true causes the system to instead report a "
 						 "warning, zero out the damaged page, and continue processing. This "
 						 "behavior will destroy data, namely all the rows on the damaged page."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&zero_damaged_pages,
@@ -1290,6 +1320,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "crashes, data loss, propagate or hide corruption, "
 						 "or other serious problems. Only has an effect "
 						 "during recovery or in standby mode."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_invalid_pages,
@@ -1303,7 +1334,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "only partially written to disk.  During recovery, the row changes "
 						 "stored in WAL are not enough to recover.  This option writes "
 						 "pages when first modified after a checkpoint to WAL so full recovery "
-						 "is possible.")
+						 "is possible."),
+			GUC_HOST_SECURITY
 		},
 		&fullPageWrites,
 		true,
@@ -1313,7 +1345,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_log_hints,
 		false,
@@ -1323,7 +1356,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Writes zeroes to new WAL files before first use."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_init_zero,
 		true,
@@ -1333,7 +1367,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_recycle", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Recycles WAL files by renaming them."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_recycle,
 		true,
@@ -1343,7 +1378,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs each checkpoint."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_checkpoints,
 		false,
@@ -1352,7 +1388,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs each successful connection."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Log_connections,
 		false,
@@ -1361,7 +1398,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs end of a session, including duration."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Log_disconnections,
 		false,
@@ -1370,7 +1408,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs each replication command."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_replication_commands,
 		false,
@@ -1380,6 +1419,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether the running server has assertion checks enabled."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&assert_enabled,
@@ -1394,7 +1434,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Terminate session on any error."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&ExitOnAnyError,
 		false,
@@ -1403,7 +1444,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Reinitialize server after backend crash."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&restart_after_crash,
 		true,
@@ -1413,6 +1455,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"remove_temp_files_after_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Remove temporary files after backend crash."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&remove_temp_files_after_crash,
@@ -1423,7 +1466,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_duration", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs the duration of each completed SQL statement."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_duration,
 		false,
@@ -1432,7 +1476,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's parse tree."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_print_parse,
 		false,
@@ -1441,7 +1486,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's rewritten parse tree."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_print_rewritten,
 		false,
@@ -1450,7 +1496,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's execution plan."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_print_plan,
 		false,
@@ -1459,7 +1506,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Indents parse and plan tree displays."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&Debug_pretty_print,
 		true,
@@ -1468,7 +1516,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_parser_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes parser performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_parser_stats,
 		false,
@@ -1477,7 +1526,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_planner_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes planner performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_planner_stats,
 		false,
@@ -1486,7 +1536,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_executor_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes executor performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_executor_stats,
 		false,
@@ -1495,7 +1546,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_statement_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes cumulative performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_statement_stats,
 		false,
@@ -1506,6 +1558,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&log_btree_build_stats,
@@ -1519,7 +1572,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Collects information about executing commands."),
 			gettext_noop("Enables the collection of information on the currently "
 						 "executing command of each session, along with "
-						 "the time at which that command began execution.")
+						 "the time at which that command began execution."),
+			GUC_DATABASE_SECURITY
 		},
 		&pgstat_track_activities,
 		true,
@@ -1528,7 +1582,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_counts", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects statistics on database activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&pgstat_track_counts,
 		true,
@@ -1537,7 +1592,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for database I/O activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&track_io_timing,
 		false,
@@ -1546,7 +1602,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_wal_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for WAL I/O activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&track_wal_io_timing,
 		false,
@@ -1556,7 +1613,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"update_process_title", PGC_SUSET, PROCESS_TITLE,
 			gettext_noop("Updates the process title to show the active SQL command."),
-			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
+			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server."),
+			GUC_HOST_SECURITY
 		},
 		&update_process_title,
 #ifdef WIN32
@@ -1570,7 +1628,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"autovacuum", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Starts the autovacuum subprocess."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&autovacuum_start_daemon,
 		true,
@@ -1581,6 +1640,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_notify,
@@ -1593,6 +1653,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lock usage."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_locks,
@@ -1603,6 +1664,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about user lock usage."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_userlocks,
@@ -1613,6 +1675,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lightweight lock usage."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lwlocks,
@@ -1623,6 +1686,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Debug_deadlocks,
@@ -1634,7 +1698,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs long lock waits."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_lock_waits,
 		false,
@@ -1643,7 +1708,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs standby recovery conflict waits."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_recovery_conflict_waits,
 		false,
@@ -1655,7 +1721,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("By default, connection logs only show the IP address "
 						 "of the connecting host. If you want them to show the host name you "
 						 "can turn this on, but depending on your host name resolution "
-						 "setup it might impose a non-negligible performance penalty.")
+						 "setup it might impose a non-negligible performance penalty."),
+			GUC_HOST_SECURITY
 		},
 		&log_hostname,
 		false,
@@ -1668,7 +1735,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(or NULL = expr) are treated as expr IS NULL, that is, they "
 						 "return true if expr evaluates to the null value, and false "
 						 "otherwise. The correct behavior of expr = NULL is to always "
-						 "return null (unknown).")
+						 "return null (unknown)."),
+			GUC_DATABASE_SECURITY
 		},
 		&Transform_null_equals,
 		false,
@@ -1677,7 +1745,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"db_user_namespace", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Enables per-database user names."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Db_user_namespace,
 		false,
@@ -1687,6 +1756,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default read-only status of new transactions."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&DefaultXactReadOnly,
@@ -1697,6 +1767,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's read-only status."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactReadOnly,
@@ -1706,7 +1777,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default deferrable status of new transactions."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&DefaultXactDeferrable,
 		false,
@@ -1716,6 +1788,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactDeferrable,
@@ -1725,7 +1798,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Enable row security."),
-			gettext_noop("When enabled, row security will be applied to all users.")
+			gettext_noop("When enabled, row security will be applied to all users."),
+			GUC_DATABASE_SECURITY
 		},
 		&row_security,
 		true,
@@ -1734,7 +1808,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&check_function_bodies,
 		true,
@@ -1745,7 +1820,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enable input of NULL elements in arrays."),
 			gettext_noop("When turned on, unquoted NULL in an array input "
 						 "value means a null value; "
-						 "otherwise it is taken literally.")
+						 "otherwise it is taken literally."),
+			GUC_DATABASE_SECURITY
 		},
 		&Array_nulls,
 		true,
@@ -1761,6 +1837,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("WITH OIDS is no longer supported; this can only be false."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
 		},
 		&default_with_oids,
@@ -1770,7 +1847,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Logging_collector,
 		false,
@@ -1779,7 +1857,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Truncate existing log files of same name during log rotation."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Log_truncate_on_rotation,
 		false,
@@ -1791,6 +1870,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit information about resource usage in sorting."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_sort,
@@ -1805,6 +1885,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generate debugging output for synchronized scanning."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_syncscan,
@@ -1820,6 +1901,7 @@ static struct config_bool ConfigureNamesBool[] =
 			"optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enable bounded sorting using heap sort."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&optimize_bounded_sort,
@@ -1833,6 +1915,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit WAL-related debugging output."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&XLOG_DEBUG,
@@ -1845,6 +1928,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether datetimes are integer based."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&integer_datetimes,
@@ -1855,7 +1939,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&pg_krb_caseins_users,
 		false,
@@ -1865,7 +1950,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Warn about backslash escapes in ordinary string literals."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&escape_string_warning,
 		true,
@@ -1876,6 +1962,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Causes '...' strings to treat backslashes literally."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&standard_conforming_strings,
@@ -1886,7 +1973,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enable synchronized sequential scans."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&synchronize_seqscans,
 		true,
@@ -1896,7 +1984,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets whether to include or exclude transaction with recovery target."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryTargetInclusive,
 		true,
@@ -1906,7 +1995,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
 			gettext_noop("Allows connections and queries during recovery."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&EnableHotStandby,
 		true,
@@ -1916,7 +2006,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&hot_standby_feedback,
 		false,
@@ -1927,6 +2018,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether hot standby is currently active."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&in_hot_standby,
@@ -1938,6 +2030,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allows modifications of the structure of system tables."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&allowSystemTableMods,
@@ -1950,6 +2043,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Disables reading from system indexes."),
 			gettext_noop("It does not prevent updating the indexes, so it is safe "
 						 "to use.  The worst consequence is slowness."),
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&IgnoreSystemIndexes,
@@ -1961,7 +2055,8 @@ static struct config_bool ConfigureNamesBool[] =
 		{"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
 			gettext_noop("Skips privilege checks when reading or modifying large objects, "
-						 "for compatibility with PostgreSQL releases prior to 9.0.")
+						 "for compatibility with PostgreSQL releases prior to 9.0."),
+			GUC_HOST_SECURITY
 		},
 		&lo_compat_privileges,
 		false,
@@ -1972,6 +2067,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("When generating SQL fragments, quote all identifiers."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 		},
 		&quote_all_identifiers,
 		false,
@@ -1982,6 +2078,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether data checksums are turned on for this cluster."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_checksums,
@@ -1992,7 +2089,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_sequence_numbers,
 		true,
@@ -2002,7 +2100,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_split_messages,
 		true,
@@ -2013,6 +2112,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"parallel_leader_participation", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
 			gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&parallel_leader_participation,
@@ -2024,6 +2124,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Allow JIT compilation."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_enabled,
@@ -2035,6 +2136,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with debugger."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_debugging_support,
@@ -2052,6 +2154,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_dump_bitcode,
@@ -2063,6 +2166,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of expressions."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_expressions,
@@ -2074,6 +2178,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with perf profiler."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_profiling_support,
@@ -2091,6 +2196,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of tuple deforming."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_tuple_deforming,
@@ -2101,6 +2207,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Whether to continue running after a failure to sync data files."),
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&data_sync_retry,
 		false,
@@ -2110,6 +2218,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&wal_receiver_create_temp_slot,
 		false,
@@ -2130,6 +2240,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Forces a switch to the next WAL file if a "
 						 "new file has not been started within N seconds."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_S
 		},
 		&XLogArchiveTimeout,
@@ -2140,6 +2251,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup after authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_NETWORK_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PostAuthDelay,
@@ -2150,7 +2262,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Sets the default statistics target."),
 			gettext_noop("This applies to table columns that have not had a "
-						 "column-specific target set via ALTER TABLE SET STATISTICS.")
+						 "column-specific target set via ALTER TABLE SET STATISTICS."),
+			GUC_DATABASE_SECURITY
 		},
 		&default_statistics_target,
 		100, 1, 10000,
@@ -2163,6 +2276,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will merge subqueries into upper "
 						 "queries if the resulting FROM list would have no more than "
 						 "this many items."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&from_collapse_limit,
@@ -2176,6 +2290,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will flatten explicit JOIN "
 						 "constructs into lists of FROM items whenever a "
 						 "list of no more than this many items would result."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&join_collapse_limit,
@@ -2186,6 +2301,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&geqo_threshold,
@@ -2196,6 +2312,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_effort,
@@ -2206,6 +2323,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of individuals in the population."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_pool_size,
@@ -2216,6 +2334,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of iterations of the algorithm."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_generations,
@@ -2228,6 +2347,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
 			gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&DeadlockTimeout,
@@ -2239,6 +2359,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&max_standby_archive_delay,
@@ -2250,6 +2371,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&max_standby_streaming_delay,
@@ -2261,6 +2383,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the minimum delay for applying changes during recovery."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&recovery_min_apply_delay,
@@ -2272,6 +2395,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&wal_receiver_status_interval,
@@ -2283,6 +2407,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum wait time to receive data from the sending server."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&wal_receiver_timeout,
@@ -2293,7 +2418,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the maximum number of concurrent connections."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&MaxConnections,
 		100, 1, MAX_BACKENDS,
@@ -2304,7 +2430,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the number of connection slots reserved for superusers."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&ReservedBackends,
 		3, 0, MAX_BACKENDS,
@@ -2315,6 +2442,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Amount of dynamic shared memory reserved at startup."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&min_dynamic_shared_memory,
@@ -2330,6 +2458,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the number of shared memory buffers used by the server."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&NBuffers,
@@ -2341,6 +2470,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_buffers", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of temporary buffers used by each session."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN
 		},
 		&num_temp_buffers,
@@ -2351,7 +2481,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"port", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the TCP port the server listens on."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&PostPortNumber,
 		DEF_PGPORT, 1, 65535,
@@ -2366,7 +2497,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_NETWORK_SECURITY
 		},
 		&Unix_socket_permissions,
 		0777, 0000, 0777,
@@ -2380,7 +2512,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_HOST_SECURITY
 		},
 		&Log_file_mode,
 		0600, 0000, 0777,
@@ -2395,6 +2528,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "in the form accepted by the chmod and umask system "
 						 "calls. (To use the customary octal format the number "
 						 "must start with a 0 (zero).)"),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_directory_mode,
@@ -2408,6 +2542,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This much memory can be used by each internal "
 						 "sort operation and hash table before switching to "
 						 "temporary disk files."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB | GUC_EXPLAIN
 		},
 		&work_mem,
@@ -2419,6 +2554,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used for maintenance operations."),
 			gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
@@ -2431,6 +2567,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum memory to be used for logical decoding."),
 			gettext_noop("This much memory can be used by each internal "
 						 "reorder buffer before spilling to disk."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&logical_decoding_work_mem,
@@ -2447,6 +2584,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum stack depth, in kilobytes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&max_stack_depth,
@@ -2458,6 +2596,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
 			gettext_noop("Limits the total size of all temporary files used by each process."),
 			gettext_noop("-1 means no limit."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&temp_file_limit,
@@ -2468,7 +2607,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostPageHit,
 		1, 0, 10000,
@@ -2478,7 +2618,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostPageMiss,
 		2, 0, 10000,
@@ -2488,7 +2629,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostPageDirty,
 		20, 0, 10000,
@@ -2498,7 +2640,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost amount available before napping."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&VacuumCostLimit,
 		200, 1, 10000,
@@ -2508,7 +2651,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&autovacuum_vac_cost_limit,
 		-1, -1, 10000,
@@ -2518,7 +2662,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
 			gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_files_per_process,
 		1000, 64, INT_MAX,
@@ -2531,7 +2676,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_prepared_xacts,
 		0, 0, MAX_BACKENDS,
@@ -2543,6 +2689,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the minimum OID of tables for tracking locks."),
 			gettext_noop("Is used to avoid output on system tables."),
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_oidmin,
@@ -2553,6 +2700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_table,
@@ -2565,6 +2713,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any statement."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&StatementTimeout,
@@ -2576,6 +2725,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&LockTimeout,
@@ -2587,6 +2737,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&IdleInTransactionSessionTimeout,
@@ -2598,6 +2749,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&IdleSessionTimeout,
@@ -2608,7 +2760,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a table row."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_freeze_min_age,
 		50000000, 0, 1000000000,
@@ -2618,7 +2771,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2628,7 +2782,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_multixact_freeze_min_age,
 		5000000, 0, 1000000000,
@@ -2638,7 +2793,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_multixact_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2648,7 +2804,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_defer_cleanup_age", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_defer_cleanup_age,
 		0, 0, 1000000,			/* see ComputeXidHorizons */
@@ -2657,7 +2814,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2666,7 +2824,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&vacuum_multixact_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2681,7 +2840,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of locks per transaction."),
 			gettext_noop("The shared lock table is sized on the assumption that "
 						 "at most max_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_HOST_SECURITY
 		},
 		&max_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2693,7 +2853,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of predicate locks per transaction."),
 			gettext_noop("The shared predicate lock table is sized on the assumption that "
 						 "at most max_pred_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_HOST_SECURITY
 		},
 		&max_predicate_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2704,7 +2865,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
 			gettext_noop("If more than this total of pages and tuples in the same relation are locked "
-						 "by a connection, those locks are replaced by a relation-level lock.")
+						 "by a connection, those locks are replaced by a relation-level lock."),
+			GUC_HOST_SECURITY
 		},
 		&max_predicate_locks_per_relation,
 		-2, INT_MIN, INT_MAX,
@@ -2715,7 +2877,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
 			gettext_noop("If more than this number of tuples on the same page are locked "
-						 "by a connection, those locks are replaced by a page-level lock.")
+						 "by a connection, those locks are replaced by a page-level lock."),
+			GUC_HOST_SECURITY
 		},
 		&max_predicate_locks_per_page,
 		2, 0, INT_MAX,
@@ -2726,6 +2889,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the maximum allowed time to complete client authentication."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&AuthenticationTimeout,
@@ -2738,6 +2902,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup before authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_NETWORK_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PreAuthDelay,
@@ -2749,6 +2914,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
 			gettext_noop("Sets the size of WAL files held for standby servers."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&wal_keep_size_mb,
@@ -2760,6 +2926,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the minimum size to shrink the WAL to."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&min_wal_size_mb,
@@ -2772,6 +2939,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the WAL size that triggers a checkpoint."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&max_wal_size_mb,
@@ -2784,6 +2952,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_S
 		},
 		&CheckPointTimeout,
@@ -2798,6 +2967,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Write a message to the server log if checkpoints "
 						 "caused by the filling of checkpoint segment files happens more "
 						 "frequently than this number of seconds. Zero turns off the warning."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_S
 		},
 		&CheckPointWarning,
@@ -2809,6 +2979,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&checkpoint_flush_after,
@@ -2820,6 +2991,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_XBLOCKS
 		},
 		&XLOGbuffers,
@@ -2831,6 +3003,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Time between WAL flushes performed in the WAL writer."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&WalWriterDelay,
@@ -2842,6 +3015,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_XBLOCKS
 		},
 		&WalWriterFlushAfter,
@@ -2853,6 +3027,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&wal_skip_threshold,
@@ -2863,7 +3038,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_wal_senders,
 		10, 0, MAX_BACKENDS,
@@ -2874,7 +3050,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_wal_senders */
 		{"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_replication_slots,
 		10, 0, MAX_BACKENDS /* XXX? */ ,
@@ -2887,6 +3064,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Replication slots will be marked as failed, and segments released "
 						 "for deletion or recycling, if this much space is occupied by WAL "
 						 "on disk."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MB
 		},
 		&max_slot_wal_keep_size_mb,
@@ -2898,6 +3076,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum time to wait for WAL replication."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&wal_sender_timeout,
@@ -2909,7 +3088,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_delay", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Sets the delay in microseconds between transaction commit and "
 						 "flushing WAL to disk."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 			/* we have no microseconds designation, so can't supply units here */
 		},
 		&CommitDelay,
@@ -2921,7 +3101,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_siblings", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the minimum concurrent open transactions before performing "
 						 "commit_delay."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&CommitSiblings,
 		5, 0, 1000,
@@ -2934,7 +3115,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This affects real, double precision, and geometric data types. "
 						 "A zero or negative parameter value is added to the standard "
 						 "number of digits (FLT_DIG or DBL_DIG as appropriate). "
-						 "Any value greater than zero selects precise output mode.")
+						 "Any value greater than zero selects precise output mode."),
+			GUC_DATABASE_SECURITY
 		},
 		&extra_float_digits,
 		1, -15, 3,
@@ -2947,6 +3129,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "a sample of statements will be logged."
 						 " Sampling is determined by log_statement_sample_rate."),
 			gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_sample,
@@ -2959,6 +3142,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "all statements will be logged."),
 			gettext_noop("Zero prints all queries. -1 turns this feature off."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_statement,
@@ -2971,6 +3155,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "autovacuum actions will be logged."),
 			gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&Log_autovacuum_min_duration,
@@ -2982,6 +3167,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("When logging statements, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length,
@@ -2993,6 +3179,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("When reporting an error, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length_on_error,
@@ -3004,6 +3191,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer sleep time between rounds."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&BgWriterDelay,
@@ -3014,7 +3202,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer maximum number of LRU pages to flush per round."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&bgwriter_lru_maxpages,
 		100, 0, INT_MAX / 2,	/* Same upper limit as shared_buffers */
@@ -3025,6 +3214,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&bgwriter_flush_after,
@@ -3038,6 +3228,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_EXPLAIN
 		},
 		&effective_io_concurrency,
@@ -3056,6 +3247,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("A variant of effective_io_concurrency that is used for maintenance work."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_EXPLAIN
 		},
 		&maintenance_io_concurrency,
@@ -3072,6 +3264,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BLOCKS
 		},
 		&backend_flush_after,
@@ -3085,6 +3278,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Maximum number of concurrent worker processes."),
 			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_worker_processes,
 		8, 0, MAX_BACKENDS,
@@ -3097,6 +3291,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of logical replication worker processes."),
 			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_logical_replication_workers,
 		4, 0, MAX_BACKENDS,
@@ -3109,6 +3304,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of table synchronization workers per subscription."),
 			NULL,
+			GUC_HOST_SECURITY
 		},
 		&max_sync_workers_per_subscription,
 		2, 0, MAX_BACKENDS,
@@ -3119,6 +3315,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N minutes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MIN
 		},
 		&Log_RotationAge,
@@ -3130,6 +3327,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N kilobytes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&Log_RotationSize,
@@ -3141,6 +3339,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of function arguments."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_function_args,
@@ -3152,6 +3351,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of index keys."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_index_keys,
@@ -3163,6 +3363,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum identifier length."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_identifier_length,
@@ -3174,6 +3375,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of a disk block."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&block_size,
@@ -3185,6 +3387,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the number of pages per disk file."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&segment_size,
@@ -3196,6 +3399,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the block size in the write ahead log."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_block_size,
@@ -3208,6 +3412,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the time to wait before retrying to retrieve WAL "
 						 "after a failed attempt."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MS
 		},
 		&wal_retrieve_retry_interval,
@@ -3219,6 +3424,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of write ahead log segments."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_segment_size,
@@ -3232,6 +3438,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Time to sleep between autovacuum runs."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_S
 		},
 		&autovacuum_naptime,
@@ -3241,7 +3448,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_thresh,
 		50, 0, INT_MAX,
@@ -3250,7 +3458,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_ins_thresh,
 		1000, -1, INT_MAX,
@@ -3259,7 +3468,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_anl_thresh,
 		50, 0, INT_MAX,
@@ -3269,7 +3479,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_freeze_max_age,
 
@@ -3284,7 +3495,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_multixact_freeze_max_age,
 		400000000, 10000, 2000000000,
@@ -3294,7 +3506,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&autovacuum_max_workers,
 		3, 1, MAX_BACKENDS,
@@ -3304,7 +3517,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&max_parallel_maintenance_workers,
 		2, 0, 1024,
@@ -3315,6 +3529,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per executor node."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers_per_gather,
@@ -3326,6 +3541,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers,
@@ -3337,6 +3553,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&autovacuum_work_mem,
@@ -3348,6 +3565,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"old_snapshot_threshold", PGC_POSTMASTER, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Time before a snapshot is too old to read pages changed after the snapshot was taken."),
 			gettext_noop("A value of -1 disables this feature."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_MIN
 		},
 		&old_snapshot_threshold,
@@ -3359,6 +3577,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between issuing TCP keepalives."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_idle,
@@ -3370,6 +3589,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between TCP keepalive retransmits."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_interval,
@@ -3381,6 +3601,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"ssl_renegotiation_limit", PGC_USERSET, CONN_AUTH_SSL,
 			gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE,
 		},
 		&ssl_renegotiation_limit,
@@ -3394,6 +3615,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This controls the number of consecutive keepalive retransmits that can be "
 						 "lost before a connection is considered dead. A value of 0 uses the "
 						 "system default."),
+			GUC_NETWORK_SECURITY
 		},
 		&tcp_keepalives_count,
 		0, 0, INT_MAX,
@@ -3404,6 +3626,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
 			gettext_noop("Sets the maximum allowed result for exact search by GIN."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			0
 		},
 		&GinFuzzySearchLimit,
@@ -3416,6 +3639,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the planner's assumption about the total size of the data caches."),
 			gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
 						 "This is measured in disk pages, which are normally 8 kB each."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&effective_cache_size,
@@ -3427,6 +3651,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of table data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_table_scan_size,
@@ -3438,6 +3663,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of index data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_index_scan_size,
@@ -3450,6 +3676,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version as an integer."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_num,
@@ -3461,6 +3688,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_temp_files", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
 			gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&log_temp_files,
@@ -3472,6 +3700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"track_activity_query_size", PGC_POSTMASTER, STATS_COLLECTOR,
 			gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_BYTE
 		},
 		&pgstat_track_activity_query_size,
@@ -3483,6 +3712,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum size of the pending list for GIN index."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_KB
 		},
 		&gin_pending_list_limit,
@@ -3494,6 +3724,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_user_timeout", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("TCP user timeout."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&tcp_user_timeout,
@@ -3505,6 +3736,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("The size of huge page that should be requested."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_UNIT_KB
 		},
 		&huge_page_size,
@@ -3516,6 +3748,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"debug_invalidate_system_caches_always", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Aggressively invalidate system caches for debugging purposes."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&debug_invalidate_system_caches_always,
@@ -3539,6 +3772,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"client_connection_check_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the time interval between checks for disconnection while running queries."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_UNIT_MS
 		},
 		&client_connection_check_interval,
@@ -3560,6 +3794,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "sequentially fetched disk page."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&seq_page_cost,
@@ -3571,6 +3806,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "nonsequentially fetched disk page."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&random_page_cost,
@@ -3582,6 +3818,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each tuple (row)."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cpu_tuple_cost,
@@ -3593,6 +3830,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each index entry during an index scan."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cpu_index_tuple_cost,
@@ -3604,6 +3842,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each operator or function call."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cpu_operator_cost,
@@ -3615,6 +3854,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "passing each tuple (row) from worker to leader backend."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&parallel_tuple_cost,
@@ -3626,6 +3866,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "starting up worker processes for parallel query."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&parallel_setup_cost,
@@ -3637,6 +3878,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT compilation if query is more expensive."),
 			gettext_noop("-1 disables JIT compilation."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_above_cost,
@@ -3648,6 +3890,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
 			gettext_noop("-1 disables optimization."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_optimize_above_cost,
@@ -3659,6 +3902,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT inlining if query is more expensive."),
 			gettext_noop("-1 disables inlining."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&jit_inline_above_cost,
@@ -3671,6 +3915,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the fraction of "
 						 "a cursor's rows that will be retrieved."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&cursor_tuple_fraction,
@@ -3682,6 +3927,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: selective pressure within the population."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_selection_bias,
@@ -3693,6 +3939,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: seed for random path selection."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&Geqo_seed,
@@ -3704,6 +3951,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Multiple of work_mem to use for hash tables."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&hash_mem_multiplier,
@@ -3714,7 +3962,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Multiple of the average buffer usage to free per round."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&bgwriter_lru_multiplier,
 		2.0, 0.0, 10.0,
@@ -3725,6 +3974,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"seed", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the seed for random-number generation."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&phony_random_seed,
@@ -3736,6 +3986,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost delay in milliseconds."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&VacuumCostDelay,
@@ -3747,6 +3998,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_UNIT_MS
 		},
 		&autovacuum_vac_cost_delay,
@@ -3757,7 +4009,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_scale,
 		0.2, 0.0, 100.0,
@@ -3767,7 +4020,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_vac_ins_scale,
 		0.2, 0.0, 100.0,
@@ -3777,7 +4031,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&autovacuum_anl_scale,
 		0.1, 0.0, 100.0,
@@ -3787,7 +4042,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&CheckPointCompletionTarget,
 		0.9, 0.0, 1.0,
@@ -3797,7 +4053,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
-			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
+			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log)."),
+			GUC_HOST_SECURITY
 		},
 		&log_statement_sample_rate,
 		1.0, 0.0, 1.0,
@@ -3808,7 +4065,8 @@ static struct config_real ConfigureNamesReal[] =
 		{"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the fraction of transactions from which to log all statements."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
-						 "statements for all transactions).")
+						 "statements for all transactions)."),
+			GUC_HOST_SECURITY
 		},
 		&log_xact_sample_rate,
 		0.0, 0.0, 1.0,
@@ -3827,7 +4085,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
 			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&XLogArchiveCommand,
 		"",
@@ -3837,7 +4096,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryRestoreCommand,
 		"",
@@ -3847,7 +4107,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed at every restart point."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&archiveCleanupCommand,
 		"",
@@ -3857,7 +4118,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryEndCommand,
 		"",
@@ -3867,7 +4129,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Specifies the timeline to recover into."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_timeline_string,
 		"latest",
@@ -3877,7 +4140,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_string,
 		"",
@@ -3886,7 +4150,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the transaction ID up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_xid_string,
 		"",
@@ -3895,7 +4160,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the time stamp up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_time_string,
 		"",
@@ -3904,7 +4170,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the named restore point up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_name_string,
 		"",
@@ -3913,7 +4180,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recovery_target_lsn_string,
 		"",
@@ -3923,7 +4191,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"promote_trigger_file", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Specifies a file name whose presence ends recovery in the standby."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&PromoteTriggerFile,
 		"",
@@ -3934,7 +4203,7 @@ static struct config_string ConfigureNamesString[] =
 		{"primary_conninfo", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the connection string to be used to connect to the sending server."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&PrimaryConnInfo,
 		"",
@@ -3944,7 +4213,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the name of the replication slot to use on the sending server."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&PrimarySlotName,
 		"",
@@ -3955,6 +4225,7 @@ static struct config_string ConfigureNamesString[] =
 		{"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the client's character set encoding."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME | GUC_REPORT
 		},
 		&client_encoding_string,
@@ -3965,7 +4236,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Controls information prefixed to each log line."),
-			gettext_noop("If blank, no prefix is used.")
+			gettext_noop("If blank, no prefix is used."),
+			GUC_HOST_SECURITY
 		},
 		&Log_line_prefix,
 		"%m [%p] ",
@@ -3975,7 +4247,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Sets the time zone to use in log messages."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_timezone_string,
 		"GMT",
@@ -3987,6 +4260,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the display format for date and time values."),
 			gettext_noop("Also controls interpretation of ambiguous "
 						 "date inputs."),
+			GUC_DATABASE_SECURITY,
 			GUC_LIST_INPUT | GUC_REPORT
 		},
 		&datestyle_string,
@@ -3998,6 +4272,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default table access method for new tables."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME
 		},
 		&default_table_access_method,
@@ -4009,6 +4284,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default tablespace to create tables and indexes in."),
 			gettext_noop("An empty string selects the database's default tablespace."),
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME
 		},
 		&default_tablespace,
@@ -4020,6 +4296,7 @@ static struct config_string ConfigureNamesString[] =
 		{"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&temp_tablespaces,
@@ -4034,7 +4311,7 @@ static struct config_string ConfigureNamesString[] =
 						 "the specified name does not have a directory component (i.e., the "
 						 "name does not contain a slash), the system will search this path for "
 						 "the specified file."),
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&Dynamic_library_path,
 		"$libdir",
@@ -4045,7 +4322,7 @@ static struct config_string ConfigureNamesString[] =
 		{"krb_server_keyfile", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the location of the Kerberos server key file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&pg_krb_server_keyfile,
 		PG_KRB_SRVTAB,
@@ -4055,7 +4332,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the Bonjour service name."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&bonjour_name,
 		"",
@@ -4068,6 +4346,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_collate", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the collation order locale."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_collate,
@@ -4079,6 +4358,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_ctype", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the character classification and case conversion locale."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_ctype,
@@ -4089,7 +4369,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the language in which messages are displayed."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_messages,
 		"",
@@ -4099,7 +4380,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting monetary amounts."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_monetary,
 		"C",
@@ -4109,7 +4391,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting numbers."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_numeric,
 		"C",
@@ -4119,7 +4402,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting date and time values."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&locale_time,
 		"C",
@@ -4130,6 +4414,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into each backend."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&session_preload_libraries_string,
@@ -4141,6 +4426,7 @@ static struct config_string ConfigureNamesString[] =
 		{"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into server."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&shared_preload_libraries_string,
@@ -4152,6 +4438,7 @@ static struct config_string ConfigureNamesString[] =
 		{"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&local_preload_libraries_string,
@@ -4163,6 +4450,7 @@ static struct config_string ConfigureNamesString[] =
 		{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the schema search order for names that are not schema-qualified."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_EXPLAIN
 		},
 		&namespace_search_path,
@@ -4175,6 +4463,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server (database) character set encoding."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_encoding_string,
@@ -4187,6 +4476,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_version", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_string,
@@ -4199,6 +4489,7 @@ static struct config_string ConfigureNamesString[] =
 		{"role", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the current role."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_IS_NAME | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&role_string,
@@ -4211,6 +4502,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_authorization", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the session user name."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&session_authorization_string,
@@ -4224,6 +4516,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Valid values are combinations of \"stderr\", "
 						 "\"syslog\", \"csvlog\", and \"eventlog\", "
 						 "depending on the platform."),
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT
 		},
 		&Log_destination_string,
@@ -4235,6 +4528,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the destination directory for log files."),
 			gettext_noop("Can be specified as relative to the data directory "
 						 "or as absolute path."),
+			GUC_HOST_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_directory,
@@ -4245,6 +4539,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_filename", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the file name pattern for log files."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_filename,
@@ -4256,7 +4551,8 @@ static struct config_string ConfigureNamesString[] =
 		{"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the program name used to identify PostgreSQL "
 						 "messages in syslog."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_ident_str,
 		"postgres",
@@ -4267,7 +4563,8 @@ static struct config_string ConfigureNamesString[] =
 		{"event_source", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Sets the application name used to identify "
 						 "PostgreSQL messages in the event log."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&event_source,
 		DEFAULT_EVENT_SOURCE,
@@ -4278,6 +4575,7 @@ static struct config_string ConfigureNamesString[] =
 		{"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&timezone_string,
@@ -4287,7 +4585,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Selects a file of time zone abbreviations."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&timezone_abbreviations_string,
 		NULL,
@@ -4298,7 +4597,8 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the owning group of the Unix-domain socket."),
 			gettext_noop("The owning user of the socket is always the user "
-						 "that starts the server.")
+						 "that starts the server."),
+			GUC_NETWORK_SECURITY
 		},
 		&Unix_socket_group,
 		"",
@@ -4309,6 +4609,7 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the directories where Unix-domain sockets will be created."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_directories,
@@ -4324,6 +4625,7 @@ static struct config_string ConfigureNamesString[] =
 		{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the host name or IP address(es) to listen to."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_LIST_INPUT
 		},
 		&ListenAddresses,
@@ -4339,6 +4641,7 @@ static struct config_string ConfigureNamesString[] =
 		{"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's data directory."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_SUPERUSER_ONLY | GUC_DISALLOW_IN_AUTO_FILE
 		},
 		&data_directory,
@@ -4350,6 +4653,7 @@ static struct config_string ConfigureNamesString[] =
 		{"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's main configuration file."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_DISALLOW_IN_FILE | GUC_SUPERUSER_ONLY
 		},
 		&ConfigFileName,
@@ -4361,7 +4665,7 @@ static struct config_string ConfigureNamesString[] =
 		{"hba_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's \"hba\" configuration file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&HbaFileName,
 		NULL,
@@ -4372,7 +4676,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ident_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's \"ident\" configuration file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&IdentFileName,
 		NULL,
@@ -4383,7 +4687,7 @@ static struct config_string ConfigureNamesString[] =
 		{"external_pid_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Writes the postmaster PID to the specified file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&external_pid_file,
 		NULL,
@@ -4394,6 +4698,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the name of the SSL library."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&ssl_library,
@@ -4408,7 +4713,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server certificate file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&ssl_cert_file,
 		"server.crt",
@@ -4418,7 +4724,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server private key file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&ssl_key_file,
 		"server.key",
@@ -4428,7 +4735,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate authority file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&ssl_ca_file,
 		"",
@@ -4438,7 +4746,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list file."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&ssl_crl_file,
 		"",
@@ -4448,7 +4757,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list directory."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&ssl_crl_dir,
 		"",
@@ -4459,7 +4769,7 @@ static struct config_string ConfigureNamesString[] =
 		{"stats_temp_directory", PGC_SIGHUP, STATS_COLLECTOR,
 			gettext_noop("Writes temporary statistics files to the specified directory."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&pgstat_temp_directory,
 		PG_STAT_TMP_DIR,
@@ -4470,6 +4780,7 @@ static struct config_string ConfigureNamesString[] =
 		{"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
 			NULL,
+			GUC_NETWORK_SECURITY,
 			GUC_LIST_INPUT
 		},
 		&SyncRepStandbyNames,
@@ -4480,7 +4791,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets default text search configuration."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&TSCurrentConfig,
 		"pg_catalog.simple",
@@ -4491,7 +4803,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the list of allowed SSL ciphers."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&SSLCipherSuites,
 #ifdef USE_OPENSSL
@@ -4506,7 +4818,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ecdh_curve", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the curve to use for ECDH."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&SSLECDHCurve,
 #ifdef USE_SSL
@@ -4521,7 +4833,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_dh_params_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL DH parameters file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&ssl_dh_params_file,
 		"",
@@ -4532,7 +4844,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_passphrase_command", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Command to obtain passphrases for SSL."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&ssl_passphrase_command,
 		"",
@@ -4543,6 +4855,7 @@ static struct config_string ConfigureNamesString[] =
 		{"application_name", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Sets the application name to be reported in statistics and logs."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
 		},
 		&application_name,
@@ -4554,6 +4867,7 @@ static struct config_string ConfigureNamesString[] =
 		{"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
 			gettext_noop("Sets the name of the cluster, which is included in the process title."),
 			NULL,
+			GUC_HOST_SECURITY,
 			GUC_IS_NAME
 		},
 		&cluster_name,
@@ -4565,6 +4879,7 @@ static struct config_string ConfigureNamesString[] =
 		{"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
 			gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
+			GUC_HOST_SECURITY,
 			GUC_LIST_INPUT | GUC_NOT_IN_SAMPLE
 		},
 		&wal_consistency_checking_string,
@@ -4576,7 +4891,7 @@ static struct config_string ConfigureNamesString[] =
 		{"jit_provider", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("JIT provider to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_HOST_SECURITY
 		},
 		&jit_provider,
 		"llvmjit",
@@ -4587,7 +4902,7 @@ static struct config_string ConfigureNamesString[] =
 		{"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Log backtrace for errors in these functions."),
 			NULL,
-			GUC_NOT_IN_SAMPLE
+			GUC_HOST_SECURITY
 		},
 		&backtrace_functions,
 		"",
@@ -4606,7 +4921,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&backslash_quote,
 		BACKSLASH_QUOTE_SAFE_ENCODING, backslash_quote_options,
@@ -4616,7 +4932,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the output format for bytea."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&bytea_output,
 		BYTEA_OUTPUT_HEX, bytea_output_options,
@@ -4627,7 +4944,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the message levels that are sent to the client."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_NETWORK_SECURITY
 		},
 		&client_min_messages,
 		NOTICE, client_message_level_options,
@@ -4637,7 +4955,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"compute_query_id", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Compute query identifiers."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&compute_query_id,
 		COMPUTE_QUERY_ID_AUTO, compute_query_id_options,
@@ -4649,6 +4968,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Enables the planner to use constraints to optimize queries."),
 			gettext_noop("Table scans will be skipped if their constraints"
 						 " guarantee that no rows match the query."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&constraint_exclusion,
@@ -4659,7 +4979,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default compression method for compressible values."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&default_toast_compression,
 		TOAST_PGLZ_COMPRESSION,
@@ -4670,7 +4991,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the transaction isolation level of each new transaction."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&DefaultXactIsoLevel,
 		XACT_READ_COMMITTED, isolation_level_options,
@@ -4681,6 +5003,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's isolation level."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactIsoLevel,
@@ -4692,6 +5015,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the display format for interval values."),
 			NULL,
+			GUC_DATABASE_SECURITY,
 			GUC_REPORT
 		},
 		&IntervalStyle,
@@ -4702,7 +5026,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the verbosity of logged messages."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&Log_error_verbosity,
 		PGERROR_DEFAULT, log_error_verbosity_options,
@@ -4713,7 +5038,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_messages", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the message levels that are logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_HOST_SECURITY
 		},
 		&log_min_messages,
 		WARNING, server_message_level_options,
@@ -4724,7 +5050,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Causes all statements generating error at or above this level to be logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_HOST_SECURITY
 		},
 		&log_min_error_statement,
 		ERROR, server_message_level_options,
@@ -4734,7 +5061,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_statement", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the type of statements logged."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&log_statement,
 		LOGSTMT_NONE, log_statement_options,
@@ -4744,7 +5072,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&syslog_facility,
 #ifdef HAVE_SYSLOG
@@ -4759,7 +5088,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&SessionReplicationRole,
 		SESSION_REPLICATION_ROLE_ORIGIN, session_replication_role_options,
@@ -4769,7 +5099,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the current transaction's synchronization level."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&synchronous_commit,
 		SYNCHRONOUS_COMMIT_ON, synchronous_commit_options,
@@ -4779,7 +5110,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
 			gettext_noop("Allows archiving of WAL files using archive_command."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&XLogArchiveMode,
 		ARCHIVE_MODE_OFF, archive_mode_options,
@@ -4789,7 +5121,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the action to perform upon reaching the recovery target."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&recoveryTargetAction,
 		RECOVERY_TARGET_ACTION_PAUSE, recovery_target_action_options,
@@ -4800,7 +5133,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"trace_recovery_messages", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Enables logging of recovery-related debugging information."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_HOST_SECURITY
 		},
 		&trace_recovery_messages,
 
@@ -4815,7 +5149,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"track_functions", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects function-level statistics on database activity."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&pgstat_track_functions,
 		TRACK_FUNC_OFF, track_function_options,
@@ -4825,7 +5160,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_compression", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Compresses full-page writes written in WAL file with specified method."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_compression,
 		WAL_COMPRESSION_NONE, wal_compression_options,
@@ -4835,7 +5171,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the level of information written to the WAL."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&wal_level,
 		WAL_LEVEL_REPLICA, wal_level_options,
@@ -4845,7 +5182,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the dynamic shared memory implementation used."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&dynamic_shared_memory_type,
 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
@@ -4855,7 +5193,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&shared_memory_type,
 		DEFAULT_SHARED_MEMORY_TYPE, shared_memory_options,
@@ -4865,7 +5204,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Selects the method used for forcing WAL updates to disk."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&sync_method,
 		DEFAULT_SYNC_METHOD, sync_method_options,
@@ -4875,7 +5215,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets how binary values are to be encoded in XML."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&xmlbinary,
 		XMLBINARY_BASE64, xmlbinary_options,
@@ -4886,7 +5227,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets whether XML data in implicit parsing and serialization "
 						 "operations is to be considered as documents or content fragments."),
-			NULL
+			NULL,
+			GUC_DATABASE_SECURITY
 		},
 		&xmloption,
 		XMLOPTION_CONTENT, xmloption_options,
@@ -4896,7 +5238,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Use of huge pages on Linux or Windows."),
-			NULL
+			NULL,
+			GUC_HOST_SECURITY
 		},
 		&huge_pages,
 		HUGE_PAGES_TRY, huge_pages_options,
@@ -4907,6 +5250,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"force_parallel_mode", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Forces use of parallel query facilities."),
 			gettext_noop("If possible, run query using a parallel worker and with parallel restrictions."),
+			GUC_DATABASE_SECURITY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&force_parallel_mode,
@@ -4917,7 +5261,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
 			gettext_noop("Chooses the algorithm for encrypting passwords."),
-			NULL
+			NULL,
+			GUC_NETWORK_SECURITY
 		},
 		&Password_encryption,
 		PASSWORD_TYPE_SCRAM_SHA_256, password_encryption_options,
@@ -4930,6 +5275,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Prepared statements can have custom and generic plans, and the planner "
 						 "will attempt to choose which is better.  This can be set to override "
 						 "the default behavior."),
+			GUC_DATABASE_SECURITY,
 			GUC_EXPLAIN
 		},
 		&plan_cache_mode,
@@ -4941,7 +5287,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_min_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the minimum SSL/TLS protocol version to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&ssl_min_protocol_version,
 		PG_TLS1_2_VERSION,
@@ -4953,7 +5299,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_max_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the maximum SSL/TLS protocol version to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_NETWORK_SECURITY
 		},
 		&ssl_max_protocol_version,
 		PG_TLS_ANY,
@@ -4964,6 +5310,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_init_sync_method", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
+			NULL,
+			GUC_HOST_SECURITY,
 		},
 		&recovery_init_sync_method,
 		RECOVERY_INIT_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
@@ -7251,6 +7599,24 @@ parse_and_validate_value(struct config_generic *record,
 	return true;
 }
 
+static bool
+role_has_privileges(Oid roleid, int privileges)
+{
+	if ((privileges & GUC_DATABASE_SECURITY) &&
+		! has_privs_of_role(roleid, ROLE_PG_DATABASE_SECURITY))
+		return false;
+
+	if ((privileges & GUC_HOST_SECURITY) &&
+		! has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
+		return false;
+
+	if ((privileges & GUC_NETWORK_SECURITY) &&
+		! has_privs_of_role(roleid, ROLE_PG_NETWORK_SECURITY))
+		return false;
+
+	return true;
+}
+
 
 /*
  * Sets option `name' to given value.
@@ -7398,7 +7764,8 @@ set_config_option(const char *name, const char *value,
 			break;
 		case PGC_SU_BACKEND:
 			/* Reject if we're connecting but user is not superuser */
-			if (context == PGC_BACKEND)
+			if (context == PGC_BACKEND &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -7445,7 +7812,8 @@ set_config_option(const char *name, const char *value,
 			}
 			break;
 		case PGC_SUSET:
-			if (context == PGC_USERSET || context == PGC_BACKEND)
+			if ((context == PGC_USERSET || context == PGC_BACKEND) &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -8487,26 +8855,30 @@ replace_auto_config_value(ConfigVariable **head_p, ConfigVariable **tail_p,
 void
 AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 {
+	VariableSetKind kind;
 	char	   *name;
 	char	   *value;
 	bool		resetall = false;
+	bool		is_super = false;
 	ConfigVariable *head = NULL;
 	ConfigVariable *tail = NULL;
 	volatile int Tmpfd;
 	char		AutoConfFileName[MAXPGPATH];
 	char		AutoConfTmpFileName[MAXPGPATH];
 
-	if (!superuser())
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to execute ALTER SYSTEM command")));
-
 	/*
 	 * Extract statement arguments
 	 */
 	name = altersysstmt->setstmt->name;
+	kind = altersysstmt->setstmt->kind;
+	is_super = superuser();
+
+	if (!is_super && kind == VAR_RESET_ALL)
+		ereport(ERROR,
+				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+				 errmsg("must be superuser to execute ALTER SYSTEM RESET ALL command")));
 
-	switch (altersysstmt->setstmt->kind)
+	switch (kind)
 	{
 		case VAR_SET_VALUE:
 			value = ExtractSetVariableArgs(altersysstmt->setstmt);
@@ -8550,6 +8922,15 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 					 errmsg("parameter \"%s\" cannot be changed",
 							name)));
 
+		/*
+		 * Deny non-superusers trying to run ALTER SYSTEM SET on variables
+		 * unless they belong to a role intended for the purpose.
+		 */
+		if (!is_super && !role_has_privileges(GetUserId(), record->privileges))
+			ereport(ERROR,
+					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+					 errmsg("permission denied to set parameter \"%s\"", name)));
+
 		/*
 		 * If a value is specified, verify that it's sane.
 		 */
@@ -8911,6 +9292,7 @@ init_custom_variable(const char *name,
 					 const char *short_desc,
 					 const char *long_desc,
 					 GucContext context,
+					 int privileges,
 					 int flags,
 					 enum config_type type,
 					 size_t sz)
@@ -8956,6 +9338,7 @@ init_custom_variable(const char *name,
 	gen->group = CUSTOM_OPTIONS;
 	gen->short_desc = short_desc;
 	gen->long_desc = long_desc;
+	gen->privileges = privileges;
 	gen->flags = flags;
 	gen->vartype = type;
 
@@ -9154,6 +9537,7 @@ DefineCustomBoolVariable(const char *name,
 						 bool *valueAddr,
 						 bool bootValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucBoolCheckHook check_hook,
 						 GucBoolAssignHook assign_hook,
@@ -9162,8 +9546,8 @@ DefineCustomBoolVariable(const char *name,
 	struct config_bool *var;
 
 	var = (struct config_bool *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_BOOL, sizeof(struct config_bool));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_BOOL, sizeof(struct config_bool));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9182,6 +9566,7 @@ DefineCustomIntVariable(const char *name,
 						int minValue,
 						int maxValue,
 						GucContext context,
+						int privileges,
 						int flags,
 						GucIntCheckHook check_hook,
 						GucIntAssignHook assign_hook,
@@ -9190,8 +9575,8 @@ DefineCustomIntVariable(const char *name,
 	struct config_int *var;
 
 	var = (struct config_int *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_INT, sizeof(struct config_int));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_INT, sizeof(struct config_int));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9212,6 +9597,7 @@ DefineCustomRealVariable(const char *name,
 						 double minValue,
 						 double maxValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucRealCheckHook check_hook,
 						 GucRealAssignHook assign_hook,
@@ -9220,8 +9606,8 @@ DefineCustomRealVariable(const char *name,
 	struct config_real *var;
 
 	var = (struct config_real *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_REAL, sizeof(struct config_real));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_REAL, sizeof(struct config_real));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9240,6 +9626,7 @@ DefineCustomStringVariable(const char *name,
 						   char **valueAddr,
 						   const char *bootValue,
 						   GucContext context,
+						   int privileges,
 						   int flags,
 						   GucStringCheckHook check_hook,
 						   GucStringAssignHook assign_hook,
@@ -9248,8 +9635,8 @@ DefineCustomStringVariable(const char *name,
 	struct config_string *var;
 
 	var = (struct config_string *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_STRING, sizeof(struct config_string));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_STRING, sizeof(struct config_string));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->check_hook = check_hook;
@@ -9266,6 +9653,7 @@ DefineCustomEnumVariable(const char *name,
 						 int bootValue,
 						 const struct config_enum_entry *options,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucEnumCheckHook check_hook,
 						 GucEnumAssignHook assign_hook,
@@ -9274,8 +9662,8 @@ DefineCustomEnumVariable(const char *name,
 	struct config_enum *var;
 
 	var = (struct config_enum *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_ENUM, sizeof(struct config_enum));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_ENUM, sizeof(struct config_enum));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index a7c3a4958e..87e49b8960 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -198,6 +198,14 @@ typedef enum
 
 #define GUC_QUALIFIER_SEPARATOR '.'
 
+/*
+ * privilege bits required to modify a GUC variable
+ */
+#define GUC_DATABASE_SECURITY	0x0001	/* internal behavior */
+#define GUC_HOST_SECURITY		0x0002	/* storage error behavior */
+#define GUC_NETWORK_SECURITY	0x0004	/* connection and authentication */
+#define GUC_ALL_PRIVILEGES		0x0007	/* all of the above */
+
 /*
  * bit values in "flags" of a GUC variable
  */
@@ -294,6 +302,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 bool *valueAddr,
 									 bool bootValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
@@ -307,6 +316,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int minValue,
 									int maxValue,
 									GucContext context,
+									int privileges,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
@@ -320,6 +330,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 double minValue,
 									 double maxValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
@@ -331,6 +342,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   char **valueAddr,
 									   const char *bootValue,
 									   GucContext context,
+									   int privileges,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
@@ -343,6 +355,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int bootValue,
 									 const struct config_enum_entry *options,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h
index 6b40f1eeb8..27288236ae 100644
--- a/src/include/utils/guc_tables.h
+++ b/src/include/utils/guc_tables.h
@@ -143,6 +143,7 @@ struct config_generic
 	enum config_group group;	/* to help organize variables by function */
 	const char *short_desc;		/* short desc. of this variable's purpose */
 	const char *long_desc;		/* long desc. of this variable's purpose */
+	int			privileges;		/* privileges bits, see guc.h */
 	int			flags;			/* flag bits, see guc.h */
 	/* variable fields, initialized at runtime: */
 	enum config_type vartype;	/* type of variable (set only at startup) */
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 6299adf71a..d24989b9bd 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -406,7 +406,7 @@ _PG_init(void)
 							 NULL,
 							 &plperl_use_strict,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	/*
@@ -420,7 +420,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_init,
 							   NULL,
-							   PGC_SIGHUP, 0,
+							   PGC_SIGHUP, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	/*
@@ -442,7 +442,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperl_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plperl.on_plperlu_init",
@@ -450,7 +450,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperlu_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	EmitWarningsOnPlaceholders("plperl");
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c
index 00aace2f39..737eb80eb0 100644
--- a/src/pl/plpgsql/src/pl_handler.c
+++ b/src/pl/plpgsql/src/pl_handler.c
@@ -158,7 +158,7 @@ _PG_init(void)
 							 &plpgsql_variable_conflict,
 							 PLPGSQL_RESOLVE_ERROR,
 							 variable_conflict_options,
-							 PGC_SUSET, 0,
+							 PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.print_strict_params",
@@ -166,7 +166,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_print_strict_params,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.check_asserts",
@@ -174,7 +174,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_check_asserts,
 							 true,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_ALL_PRIVILEGES, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plpgsql.extra_warnings",
@@ -182,7 +182,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_warnings_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_ALL_PRIVILEGES, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_warnings_assign_hook,
 							   NULL);
@@ -192,7 +192,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_errors_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_ALL_PRIVILEGES, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_errors_assign_hook,
 							   NULL);
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index e11837559d..a52c101b0a 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -464,14 +464,14 @@ _PG_init(void)
 							   NULL,
 							   &pltcl_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 	DefineCustomStringVariable("pltclu.start_proc",
 							   gettext_noop("PL/TclU function to call once when pltclu is first used."),
 							   NULL,
 							   &pltclu_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_ALL_PRIVILEGES, 0,
 							   NULL, NULL, NULL);
 
 	pltcl_pm_init_done = true;
diff --git a/src/test/modules/delay_execution/delay_execution.c b/src/test/modules/delay_execution/delay_execution.c
index b3d0841ba8..6e99f612fa 100644
--- a/src/test/modules/delay_execution/delay_execution.c
+++ b/src/test/modules/delay_execution/delay_execution.c
@@ -86,6 +86,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX,
 							PGC_USERSET,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
diff --git a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
index 6b0a3db104..b947247bf3 100644
--- a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
+++ b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
@@ -44,6 +44,7 @@ _PG_init(void)
 							   &ssl_passphrase,
 							   NULL,
 							   PGC_SIGHUP,
+							   GUC_ALL_PRIVILEGES,
 							   0,	/* no flags required */
 							   NULL,
 							   NULL,
diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c
index d0acef2652..0ef493ebfe 100644
--- a/src/test/modules/worker_spi/worker_spi.c
+++ b/src/test/modules/worker_spi/worker_spi.c
@@ -293,6 +293,7 @@ _PG_init(void)
 							1,
 							INT_MAX,
 							PGC_SIGHUP,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
@@ -309,6 +310,7 @@ _PG_init(void)
 							1,
 							100,
 							PGC_POSTMASTER,
+							GUC_ALL_PRIVILEGES,
 							0,
 							NULL,
 							NULL,
@@ -320,6 +322,7 @@ _PG_init(void)
 							   &worker_spi_database,
 							   "postgres",
 							   PGC_POSTMASTER,
+							   GUC_ALL_PRIVILEGES,
 							   0,
 							   NULL, NULL, NULL);
 
diff --git a/src/test/regress/expected/guc_priv_admin.out b/src/test/regress/expected/guc_priv_admin.out
new file mode 100644
index 0000000000..add47eddf1
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_admin.out
@@ -0,0 +1,1817 @@
+-- Non-superuser DBA with membership in all privileged roles
+CREATE ROLE admin;
+GRANT pg_database_security TO admin;
+GRANT pg_host_security TO admin;
+GRANT pg_logical_replication TO admin;
+GRANT pg_network_security TO admin;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/expected/guc_priv_host_admin.out b/src/test/regress/expected/guc_priv_host_admin.out
new file mode 100644
index 0000000000..c116e0c81c
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_host_admin.out
@@ -0,0 +1,2144 @@
+-- Non-superuser DBA with privileges to configure host security
+CREATE ROLE host_admin;
+GRANT pg_host_security TO host_admin;
+-- Perform all operations as user 'host_admin' --
+SET SESSION AUTHORIZATION host_admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_resultcache"
+ALTER SYSTEM RESET enable_resultcache;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_resultcache"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, host_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE host_admin;
diff --git a/src/test/regress/expected/guc_priv_logical_replication_user.out b/src/test/regress/expected/guc_priv_logical_replication_user.out
new file mode 100644
index 0000000000..1d4216d12c
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_logical_replication_user.out
@@ -0,0 +1,2518 @@
+-- Non-superuser with privileges to perform logical replication
+CREATE ROLE logical_replication_user;
+GRANT pg_logical_replication TO logical_replication_user;
+-- Perform all operations as user 'logical_replication_user' --
+SET SESSION AUTHORIZATION logical_replication_user;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_invalidate_system_caches_always = 2;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+RESET debug_invalidate_system_caches_always;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+SET ignore_checksum_failure = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_resultcache"
+ALTER SYSTEM RESET enable_resultcache;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_resultcache"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, logical_replication_user has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE logical_replication_user;
diff --git a/src/test/regress/expected/guc_priv_network_admin.out b/src/test/regress/expected/guc_priv_network_admin.out
new file mode 100644
index 0000000000..48ec1647c1
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_network_admin.out
@@ -0,0 +1,2442 @@
+-- Non-superuser DBA with privileges to configure network security
+CREATE ROLE network_admin;
+GRANT pg_network_security TO network_admin;
+-- Perform all operations as user 'network_admin' --
+SET SESSION AUTHORIZATION network_admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_invalidate_system_caches_always = 2;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+RESET debug_invalidate_system_caches_always;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+SET ignore_checksum_failure = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_resultcache"
+ALTER SYSTEM RESET enable_resultcache;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_resultcache"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, network_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE network_admin;
diff --git a/src/test/regress/expected/guc_priv_sandbox_admin.out b/src/test/regress/expected/guc_priv_sandbox_admin.out
new file mode 100644
index 0000000000..37ff509af8
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_sandbox_admin.out
@@ -0,0 +1,2264 @@
+-- Non-superuser DBA with privileges to configure the database
+CREATE ROLE sandbox_admin;
+GRANT pg_database_security TO sandbox_admin;
+-- Perform all operations as user 'sandbox_admin' --
+SET SESSION AUTHORIZATION sandbox_admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_invalidate_system_caches_always = 2;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+RESET debug_invalidate_system_caches_always;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_invalidate_system_caches_always"
+SET ignore_checksum_failure = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, sandbox_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE sandbox_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 22b0d3584d..24e8c1c397 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_admin guc_priv_logical_replication_user guc_priv_network_admin guc_priv_sandbox_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_admin.sql b/src/test/regress/sql/guc_priv_admin.sql
new file mode 100644
index 0000000000..7182830903
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_admin.sql
@@ -0,0 +1,1445 @@
+-- Non-superuser DBA with membership in all privileged roles
+CREATE ROLE admin;
+GRANT pg_database_security TO admin;
+GRANT pg_host_security TO admin;
+GRANT pg_logical_replication TO admin;
+GRANT pg_network_security TO admin;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/sql/guc_priv_host_admin.sql b/src/test/regress/sql/guc_priv_host_admin.sql
new file mode 100644
index 0000000000..33a8d8b4c0
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_host_admin.sql
@@ -0,0 +1,1442 @@
+-- Non-superuser DBA with privileges to configure host security
+CREATE ROLE host_admin;
+GRANT pg_host_security TO host_admin;
+-- Perform all operations as user 'host_admin' --
+SET SESSION AUTHORIZATION host_admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, host_admin has insufficient privileges
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, host_admin has insufficient privileges
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, host_admin has insufficient privileges
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, host_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, host_admin has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, host_admin has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, host_admin has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, host_admin has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, host_admin has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, host_admin has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, host_admin has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, host_admin has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, host_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, host_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, host_admin has insufficient privileges
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, host_admin has insufficient privileges
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, host_admin has insufficient privileges
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, host_admin has insufficient privileges
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, host_admin has insufficient privileges
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, host_admin has insufficient privileges
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, host_admin has insufficient privileges
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, host_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, host_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, host_admin has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, host_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, host_admin has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, host_admin has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, host_admin has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, host_admin has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, host_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, host_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, host_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, host_admin has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, host_admin has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, host_admin has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, host_admin has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, host_admin has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, host_admin has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, host_admin has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, host_admin has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, host_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+RESET lc_messages;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, host_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, host_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, host_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, host_admin has insufficient privileges
+RESET track_activities;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, host_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, host_admin has insufficient privileges
+RESET track_counts;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, host_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, host_admin has insufficient privileges
+RESET track_functions;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, host_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+RESET track_io_timing;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, host_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, host_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, host_admin has insufficient privileges
+RESET compute_query_id;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, host_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_invalidate_system_caches_always = 2;  -- ok
+RESET debug_invalidate_system_caches_always;  -- ok
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- ok
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, host_admin has insufficient privileges
+RESET session_replication_role;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, host_admin has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, host_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, host_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, host_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, host_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, host_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, host_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, host_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, host_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, host_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, host_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, host_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, host_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, host_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, host_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, host_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, host_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, host_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, host_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, host_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, host_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, host_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, host_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, host_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, host_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, host_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, host_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, host_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, host_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, host_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, host_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, host_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, host_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, host_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, host_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, host_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, host_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, host_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, host_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, host_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, host_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, host_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, host_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, host_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, host_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, host_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, host_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, host_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, host_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, host_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, host_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, host_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, host_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, host_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, host_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, host_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, host_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, host_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, host_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, host_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, host_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, host_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, host_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, host_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, host_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, host_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, host_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, host_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, host_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, host_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, host_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, host_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, host_admin has insufficient privileges
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_resultcache;  -- fail, host_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, host_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, host_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, host_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, host_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, host_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, host_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, host_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, host_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, host_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, host_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, host_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, host_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, host_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, host_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, host_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, host_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, host_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE host_admin;
diff --git a/src/test/regress/sql/guc_priv_logical_replication_user.sql b/src/test/regress/sql/guc_priv_logical_replication_user.sql
new file mode 100644
index 0000000000..c7d6f0aa4b
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_logical_replication_user.sql
@@ -0,0 +1,1442 @@
+-- Non-superuser with privileges to perform logical replication
+CREATE ROLE logical_replication_user;
+GRANT pg_logical_replication TO logical_replication_user;
+-- Perform all operations as user 'logical_replication_user' --
+SET SESSION AUTHORIZATION logical_replication_user;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, logical_replication_user has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, logical_replication_user has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, logical_replication_user has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, logical_replication_user has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, logical_replication_user has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, logical_replication_user has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, logical_replication_user has insufficient privileges
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, logical_replication_user has insufficient privileges
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, logical_replication_user has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, logical_replication_user has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, logical_replication_user has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, logical_replication_user has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, logical_replication_user has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, logical_replication_user has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, logical_replication_user has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, logical_replication_user has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, logical_replication_user has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, logical_replication_user has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, logical_replication_user has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, logical_replication_user has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, logical_replication_user has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, logical_replication_user has insufficient privileges
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, logical_replication_user has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, logical_replication_user has insufficient privileges
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, logical_replication_user has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, logical_replication_user has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, logical_replication_user has insufficient privileges
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, logical_replication_user has insufficient privileges
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, logical_replication_user has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, logical_replication_user has insufficient privileges
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, logical_replication_user has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, logical_replication_user has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, logical_replication_user has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, logical_replication_user has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, logical_replication_user has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, logical_replication_user has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, logical_replication_user has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, logical_replication_user has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, logical_replication_user has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, logical_replication_user has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, logical_replication_user has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, logical_replication_user has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, logical_replication_user has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, logical_replication_user has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, logical_replication_user has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, logical_replication_user has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, logical_replication_user has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, logical_replication_user has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, logical_replication_user has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, logical_replication_user has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, logical_replication_user has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, logical_replication_user has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, logical_replication_user has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, logical_replication_user has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, logical_replication_user has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, logical_replication_user has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, logical_replication_user has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, logical_replication_user has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, logical_replication_user has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, logical_replication_user has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, logical_replication_user has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, logical_replication_user has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, logical_replication_user has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, logical_replication_user has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, logical_replication_user has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+RESET lc_messages;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET allow_system_table_mods;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET track_activities;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, logical_replication_user has insufficient privileges
+SET track_counts = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET track_counts;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, logical_replication_user has insufficient privileges
+SET track_functions = 'none';  -- fail, logical_replication_user has insufficient privileges
+RESET track_functions;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, logical_replication_user has insufficient privileges
+SET track_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET track_io_timing;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, logical_replication_user has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET track_wal_io_timing;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, logical_replication_user has insufficient privileges
+RESET compute_query_id;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, logical_replication_user has insufficient privileges
+RESET dynamic_library_path;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, logical_replication_user has insufficient privileges
+RESET session_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET lo_compat_privileges;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logical_replication_user has insufficient privileges
+RESET backtrace_functions;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, logical_replication_user has insufficient privileges
+SET debug_invalidate_system_caches_always = 2;  -- fail, logical_replication_user has insufficient privileges
+RESET debug_invalidate_system_caches_always;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, logical_replication_user has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, logical_replication_user has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, logical_replication_user has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logical_replication_user has insufficient privileges
+RESET wal_consistency_checking;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, logical_replication_user has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET zero_damaged_pages;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+RESET deadlock_timeout;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET log_duration;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, logical_replication_user has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, logical_replication_user has insufficient privileges
+RESET log_error_verbosity;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, logical_replication_user has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET log_lock_waits;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, logical_replication_user has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, logical_replication_user has insufficient privileges
+RESET log_parameter_max_length;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, logical_replication_user has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET log_replication_commands;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, logical_replication_user has insufficient privileges
+SET log_statement = 'none';  -- fail, logical_replication_user has insufficient privileges
+RESET log_statement;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, logical_replication_user has insufficient privileges
+SET log_temp_files = 50;  -- fail, logical_replication_user has insufficient privileges
+RESET log_temp_files;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, logical_replication_user has insufficient privileges
+RESET log_min_duration_sample;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, logical_replication_user has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, logical_replication_user has insufficient privileges
+RESET log_min_duration_statement;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, logical_replication_user has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, logical_replication_user has insufficient privileges
+RESET log_min_error_statement;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, logical_replication_user has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, logical_replication_user has insufficient privileges
+RESET log_min_messages;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, logical_replication_user has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET update_process_title;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+RESET temp_file_limit;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, logical_replication_user has insufficient privileges
+RESET max_stack_depth;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET log_executor_stats;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, logical_replication_user has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET log_parser_stats;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, logical_replication_user has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET log_planner_stats;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, logical_replication_user has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET log_statement_stats;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+RESET commit_delay;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, logical_replication_user has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, logical_replication_user has insufficient privileges
+RESET wal_compression;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, logical_replication_user has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET wal_init_zero;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, logical_replication_user has insufficient privileges
+SET wal_recycle = OFF;  -- fail, logical_replication_user has insufficient privileges
+RESET wal_recycle;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, logical_replication_user has insufficient privileges
+RESET session_replication_role;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, logical_replication_user has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, logical_replication_user has insufficient privileges
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, logical_replication_user has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, logical_replication_user has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, logical_replication_user has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, logical_replication_user has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, logical_replication_user has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, logical_replication_user has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, logical_replication_user has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, logical_replication_user has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, logical_replication_user has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, logical_replication_user has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, logical_replication_user has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, logical_replication_user has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, logical_replication_user has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, logical_replication_user has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, logical_replication_user has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, logical_replication_user has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, logical_replication_user has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, logical_replication_user has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, logical_replication_user has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, logical_replication_user has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, logical_replication_user has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, logical_replication_user has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, logical_replication_user has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, logical_replication_user has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, logical_replication_user has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, logical_replication_user has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, logical_replication_user has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, logical_replication_user has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, logical_replication_user has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, logical_replication_user has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, logical_replication_user has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, logical_replication_user has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, logical_replication_user has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, logical_replication_user has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, logical_replication_user has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, logical_replication_user has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, logical_replication_user has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, logical_replication_user has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, logical_replication_user has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, logical_replication_user has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, logical_replication_user has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, logical_replication_user has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, logical_replication_user has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, logical_replication_user has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, logical_replication_user has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, logical_replication_user has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, logical_replication_user has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, logical_replication_user has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, logical_replication_user has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, logical_replication_user has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, logical_replication_user has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, logical_replication_user has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, logical_replication_user has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, logical_replication_user has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, logical_replication_user has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, logical_replication_user has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, logical_replication_user has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, logical_replication_user has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, logical_replication_user has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, logical_replication_user has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, logical_replication_user has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, logical_replication_user has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, logical_replication_user has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, logical_replication_user has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, logical_replication_user has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, logical_replication_user has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, logical_replication_user has insufficient privileges
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_resultcache;  -- fail, logical_replication_user has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, logical_replication_user has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, logical_replication_user has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, logical_replication_user has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, logical_replication_user has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, logical_replication_user has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, logical_replication_user has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, logical_replication_user has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, logical_replication_user has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, logical_replication_user has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, logical_replication_user has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, logical_replication_user has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, logical_replication_user has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, logical_replication_user has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, logical_replication_user has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, logical_replication_user has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, logical_replication_user has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, logical_replication_user has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, logical_replication_user has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, logical_replication_user has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, logical_replication_user has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, logical_replication_user has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, logical_replication_user has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, logical_replication_user has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, logical_replication_user has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, logical_replication_user has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, logical_replication_user has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE logical_replication_user;
diff --git a/src/test/regress/sql/guc_priv_network_admin.sql b/src/test/regress/sql/guc_priv_network_admin.sql
new file mode 100644
index 0000000000..099a9bdc82
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_network_admin.sql
@@ -0,0 +1,1442 @@
+-- Non-superuser DBA with privileges to configure network security
+CREATE ROLE network_admin;
+GRANT pg_network_security TO network_admin;
+-- Perform all operations as user 'network_admin' --
+SET SESSION AUTHORIZATION network_admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, network_admin has insufficient privileges
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, network_admin has insufficient privileges
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, network_admin has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, network_admin has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, network_admin has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, network_admin has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, network_admin has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, network_admin has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, network_admin has insufficient privileges
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, network_admin has insufficient privileges
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, network_admin has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, network_admin has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, network_admin has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, network_admin has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, network_admin has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, network_admin has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, network_admin has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, network_admin has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, network_admin has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, network_admin has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, network_admin has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, network_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, network_admin has insufficient privileges
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, network_admin has insufficient privileges
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, network_admin has insufficient privileges
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, network_admin has insufficient privileges
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, network_admin has insufficient privileges
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, network_admin has insufficient privileges
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, network_admin has insufficient privileges
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, network_admin has insufficient privileges
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, network_admin has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, network_admin has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, network_admin has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, network_admin has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, network_admin has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, network_admin has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, network_admin has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, network_admin has insufficient privileges
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, network_admin has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, network_admin has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, network_admin has insufficient privileges
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, network_admin has insufficient privileges
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, network_admin has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, network_admin has insufficient privileges
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, network_admin has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, network_admin has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, network_admin has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, network_admin has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, network_admin has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, network_admin has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, network_admin has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, network_admin has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, network_admin has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, network_admin has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, network_admin has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, network_admin has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, network_admin has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, network_admin has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, network_admin has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, network_admin has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, network_admin has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, network_admin has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, network_admin has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, network_admin has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, network_admin has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, network_admin has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, network_admin has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, network_admin has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, network_admin has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, network_admin has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, network_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+RESET lc_messages;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, network_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, network_admin has insufficient privileges
+RESET track_activities;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, network_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, network_admin has insufficient privileges
+RESET track_counts;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, network_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, network_admin has insufficient privileges
+RESET track_functions;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, network_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+RESET track_io_timing;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, network_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, network_admin has insufficient privileges
+RESET compute_query_id;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, network_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, network_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, network_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, network_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, network_admin has insufficient privileges
+SET debug_invalidate_system_caches_always = 2;  -- fail, network_admin has insufficient privileges
+RESET debug_invalidate_system_caches_always;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, network_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, network_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, network_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, network_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, network_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, network_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, network_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, network_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, network_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, network_admin has insufficient privileges
+RESET log_duration;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, network_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, network_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, network_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, network_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, network_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, network_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, network_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, network_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, network_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, network_admin has insufficient privileges
+RESET log_statement;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, network_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, network_admin has insufficient privileges
+RESET log_temp_files;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, network_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, network_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, network_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, network_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, network_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, network_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, network_admin has insufficient privileges
+RESET log_min_messages;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, network_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, network_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, network_admin has insufficient privileges
+RESET update_process_title;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, network_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, network_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, network_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, network_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, network_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, network_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, network_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, network_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, network_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, network_admin has insufficient privileges
+RESET commit_delay;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, network_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, network_admin has insufficient privileges
+RESET wal_compression;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, network_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, network_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, network_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, network_admin has insufficient privileges
+RESET wal_recycle;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, network_admin has insufficient privileges
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, network_admin has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, network_admin has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, network_admin has insufficient privileges
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, network_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, network_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, network_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, network_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, network_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, network_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, network_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, network_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, network_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, network_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, network_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, network_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, network_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, network_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, network_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, network_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, network_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, network_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, network_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, network_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, network_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, network_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, network_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, network_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, network_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, network_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, network_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, network_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, network_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, network_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, network_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, network_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, network_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, network_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, network_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, network_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, network_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, network_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, network_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, network_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, network_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, network_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, network_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, network_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, network_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, network_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, network_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, network_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, network_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, network_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, network_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, network_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, network_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, network_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, network_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, network_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, network_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, network_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, network_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, network_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, network_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, network_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, network_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, network_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, network_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, network_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, network_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, network_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, network_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, network_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, network_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, network_admin has insufficient privileges
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_resultcache;  -- fail, network_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, network_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, network_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, network_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, network_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, network_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, network_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, network_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, network_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, network_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, network_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, network_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, network_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, network_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, network_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, network_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, network_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, network_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, network_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, network_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, network_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, network_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, network_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, network_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, network_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE network_admin;
diff --git a/src/test/regress/sql/guc_priv_sandbox_admin.sql b/src/test/regress/sql/guc_priv_sandbox_admin.sql
new file mode 100644
index 0000000000..fb71669927
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_sandbox_admin.sql
@@ -0,0 +1,1442 @@
+-- Non-superuser DBA with privileges to configure the database
+CREATE ROLE sandbox_admin;
+GRANT pg_database_security TO sandbox_admin;
+-- Perform all operations as user 'sandbox_admin' --
+SET SESSION AUTHORIZATION sandbox_admin;
+-- PGC_BACKEND / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+-- PGC_BACKEND / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_DATABASE_SECURITY / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_INTERNAL / GUC_HOST_SECURITY / PRESET_OPTIONS
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_POSTMASTER / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, sandbox_admin has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, sandbox_admin has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, sandbox_admin has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, sandbox_admin has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, sandbox_admin has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, sandbox_admin has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, sandbox_admin has insufficient privileges
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, sandbox_admin has insufficient privileges
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, sandbox_admin has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, sandbox_admin has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, sandbox_admin has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_HOST_SECURITY / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, sandbox_admin has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, sandbox_admin has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, sandbox_admin has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, sandbox_admin has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, sandbox_admin has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, sandbox_admin has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, sandbox_admin has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, sandbox_admin has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, sandbox_admin has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, sandbox_admin has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_POSTMASTER / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / AUTOVACUUM
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / GUC_DATABASE_SECURITY / REPLICATION_PRIMARY
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / GUC_HOST_SECURITY / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, sandbox_admin has insufficient privileges
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_AUTH
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, sandbox_admin has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, sandbox_admin has insufficient privileges
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, sandbox_admin has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, sandbox_admin has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, sandbox_admin has insufficient privileges
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, sandbox_admin has insufficient privileges
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, sandbox_admin has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, sandbox_admin has insufficient privileges
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, sandbox_admin has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, sandbox_admin has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, sandbox_admin has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, sandbox_admin has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, sandbox_admin has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, sandbox_admin has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, sandbox_admin has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, sandbox_admin has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, sandbox_admin has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, sandbox_admin has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_STANDBY
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, sandbox_admin has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, sandbox_admin has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, sandbox_admin has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, sandbox_admin has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, sandbox_admin has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, sandbox_admin has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, sandbox_admin has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, sandbox_admin has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, sandbox_admin has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, sandbox_admin has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, sandbox_admin has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_HOST_SECURITY / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, sandbox_admin has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, sandbox_admin has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, sandbox_admin has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, sandbox_admin has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, sandbox_admin has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, sandbox_admin has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SIGHUP / GUC_NETWORK_SECURITY / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, sandbox_admin has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, sandbox_admin has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, sandbox_admin has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, sandbox_admin has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, sandbox_admin has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, sandbox_admin has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, sandbox_admin has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, sandbox_admin has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / GUC_DATABASE_SECURITY / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, sandbox_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, sandbox_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, sandbox_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, sandbox_admin has insufficient privileges
+SET debug_invalidate_system_caches_always = 2;  -- fail, sandbox_admin has insufficient privileges
+RESET debug_invalidate_system_caches_always;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET debug_invalidate_system_caches_always = 2;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET debug_invalidate_system_caches_always;  -- fail, sandbox_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, sandbox_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, sandbox_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, sandbox_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, sandbox_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, sandbox_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET log_duration;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, sandbox_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, sandbox_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, sandbox_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, sandbox_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, sandbox_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, sandbox_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, sandbox_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, sandbox_admin has insufficient privileges
+RESET log_statement;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, sandbox_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, sandbox_admin has insufficient privileges
+RESET log_temp_files;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, sandbox_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, sandbox_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, sandbox_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, sandbox_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, sandbox_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, sandbox_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, sandbox_admin has insufficient privileges
+RESET log_min_messages;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, sandbox_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET update_process_title;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, sandbox_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, sandbox_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, sandbox_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, sandbox_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, sandbox_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+RESET commit_delay;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, sandbox_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, sandbox_admin has insufficient privileges
+RESET wal_compression;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, sandbox_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, sandbox_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, sandbox_admin has insufficient privileges
+RESET wal_recycle;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SUSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, sandbox_admin has insufficient privileges
+RESET session_replication_role;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, sandbox_admin has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_SU_BACKEND / GUC_HOST_SECURITY / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, sandbox_admin has insufficient privileges
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / LOGGING_WHAT
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_resultcache = OFF;  -- ok
+RESET enable_resultcache;  -- ok
+ALTER SYSTEM SET enable_resultcache = OFF;  -- ok
+ALTER SYSTEM RESET enable_resultcache;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_ASYNCHRONOUS
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+-- PGC_USERSET / GUC_DATABASE_SECURITY / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / GUC_DATABASE_SECURITY / WAL_SETTINGS
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / CLIENT_CONN_STATEMENT
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, sandbox_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / DEVELOPER_OPTIONS
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, sandbox_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, sandbox_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, sandbox_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_MEM
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, sandbox_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, sandbox_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, sandbox_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, sandbox_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, sandbox_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, sandbox_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_HOST_SECURITY / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, sandbox_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CLIENT_CONN_STATEMENT
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, sandbox_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, sandbox_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, sandbox_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, sandbox_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, sandbox_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, sandbox_admin has insufficient privileges
+-- PGC_USERSET / GUC_NETWORK_SECURITY / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE sandbox_admin;
-- 
2.21.1 (Apple Git-122.3)

#39Andrey Borodin
x4mmm@yandex-team.ru
In reply to: Mark Dilger (#38)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

1 июля 2021 г., в 20:59, Mark Dilger <mark.dilger@enterprisedb.com> написал(а):

On Jun 29, 2021, at 6:25 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

Please find attached a new set of patches.

And again, this time attaching a fifth patch which includes the work to allow users who belong to the right security role to SET and ALTER SYSTEM SET variables without being a superuser.

I'm not sure, but maybe we should allow replication role to change session_replication_role?

Best regards, Andrey Borodin.

#40Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Andrey Borodin (#39)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 5, 2021, at 1:50 AM, Andrey Borodin <x4mmm@yandex-team.ru> wrote:

I'm not sure, but maybe we should allow replication role to change session_replication_role?

Thanks, Andrey, for taking a look.

Yes, there is certainly some logic to that suggestion. The patch v4-0005 only delegates authority to perform ALTER SYSTEM SET to three roles: pg_database_security, pg_network_security, and pg_host_security. I don't mind expanding this list to include the replication attribute, but I am curious about opinions on the general design. There may be an advantage in keeping the list short. In particular, as the list gets longer, will it get harder to decide which role to associate with each new GUC that gets added? For third-party extensions, will it be harder for them to decide in any principled way which role to assign to each GUC that they add? There are multiple ways to cut up the set of all GUCs. database/host/network is not an entirely clean distinction, and perhaps database/host/network/replication is better, but I'm uncertain.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#41vignesh C
vignesh21@gmail.com
In reply to: Mark Dilger (#38)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, Jul 1, 2021 at 9:42 PM Mark Dilger <mark.dilger@enterprisedb.com> wrote:

On Jun 29, 2021, at 6:25 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

Please find attached a new set of patches.

And again, this time attaching a fifth patch which includes the work to allow users who belong to the right security role to SET and ALTER SYSTEM SET variables without being a superuser.

One of the patches
v4-0004-Add-default-role-for-database-operations.patch does not apply
on head, please post an updated patch:
patching file src/backend/commands/dbcommands.c
Hunk #1 succeeded at 748 (offset -15 lines).
Hunk #2 FAILED at 780.
Hunk #3 succeeded at 1883 (offset -42 lines).
1 out of 3 hunks FAILED -- saving rejects to file
src/backend/commands/dbcommands.c.rej

Regards,
Vignesh

#42Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#32)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Fri, May 28, 2021 at 1:42 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

pg_logical_replication would not be safe to delegate that way:
/messages/by-id/flat/CACqFVBbx6PDq+=vHM0n78kHzn8tvOM-kGO_2q_q0zNAMT+TzdA@mail.gmail.com

Oh, I agree that this patch set does not go the extra step to make it safe. You are quite right to push back, as my email was poorly worded. I should have said "intended to be eventually made safe to delegate". The idea is that the patch set addresses most places in the sources where we test for superuser and tests instead for (superuser || <SOME_ROLE>), and then uses that same set of roles to control who has sufficient privileges to set GUCs. The pg_host_security and pg_network_security roles are not intended to eventually be safe to delegate. Or at least, I can't see any clear path to getting there. The pg_database_security and pg_logical_replication roles should be ones we can make safe. If we can agree as a community which set of roles are appropriate, then we can have separate patches as needed for tightening the security around them.

I don't think that we want to commit a patch to add a
pg_logical_replication role that can "eventually" be made staff to
delegate to non-superusers. Whatever issues need to be fixed should be
fixed first, and then this change can be considered afterwards. It
seems like you try to fix at least some of the issues in the patch,
because I see permission checks being added in
src/backend/replication/logical/worker.c, and I don't think that
should happen in the same patch that adds the new predefined role. I
also think it should be accompanied not only by new test cases (which
you seem to have added, though I have not reviewed them in detail) but
also documentation changes (which seem to be missing, since the doc
changes are all about the new predefined role). This is a really
significant behavior change to logical replication IMV and shouldn't
just be slipped into some other patch.

It also seems based on Noah's comments and your response that there
might be some other issue here, and I haven't understood what that is,
but I think that should also be fixed separately, and first.
Considering all this, I would suggest not having this be patch #1 in
your series; make something come first that doesn't have
prerequisites.

--
Robert Haas
EDB: http://www.enterprisedb.com

#43Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#42)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 22, 2021, at 8:29 AM, Robert Haas <robertmhaas@gmail.com> wrote:

I don't think that we want to commit a patch to add a
pg_logical_replication role that can "eventually" be made staff to
delegate to non-superusers.

Certainly not. What I meant on May 28 by "eventually" was that the patch set (posted May 25 and named "v3") had not yet implemented such security, as I was fishing for comments from the community about whether the basic division of superuser into these new roles was the right division. Having gotten little feedback on that, on June 29 I posted another patch set (confusingly also named "v3", my apologies) in which patch 0001 had expanded to include new security restrictions.

Whatever issues need to be fixed should be
fixed first, and then this change can be considered afterwards. It
seems like you try to fix at least some of the issues in the patch,
because I see permission checks being added in
src/backend/replication/logical/worker.c, and I don't think that
should happen in the same patch that adds the new predefined role.

Prior to this patch, the logical replication workers run under the userid of the owner of the subscription. This is unchanged after the patch. The real difference is that prior to the patch, only superusers can own subscriptions, so checking permissions on tables during replication would be silly (though not harmful). The worker is assured of passing all such permission checks by virtue of being a superuser. After the patch, since subscription owners need not be superusers, the permission checks are no longer silly. There is no assurance that they have permission to apply changes to a table, so naturally that has to be checked, and it is.

I don't really see this as two separate patches, since the addition of the permissions checks without the addition of non-superusers as logical replication workers is silly. But I don't mind that much, either. I'll break them in two for the next patch set.

I
also think it should be accompanied not only by new test cases (which
you seem to have added, though I have not reviewed them in detail) but
also documentation changes (which seem to be missing, since the doc
changes are all about the new predefined role). This is a really
significant behavior change to logical replication IMV and shouldn't
just be slipped into some other patch.

I'm not sure what is meant by "slipped into some other patch", but I *think* you mean that the documentation changes should not be in a separate patch from the behavioral changes. I agree with that. I'll add documentation of the changes to logical replication in the same patch as the changes themselves.

It also seems based on Noah's comments and your response that there
might be some other issue here, and I haven't understood what that is,
but I think that should also be fixed separately, and first.
Considering all this, I would suggest not having this be patch #1 in
your series; make something come first that doesn't have
prerequisites.

The issue that gets thrown around in the email archive is that "arbitrary code" can be made to run on the subscriber side. As I understand the problem, this is because trigger functions can be created on tables with arbitrary code in them, and that code will be executed under the userid of the user who causes the trigger to fire during an insert/update/delete rather than as the user who created the trigger. This of course is not peculiar to logical replication; it is how triggers work generally. What is peculiar is that a non-superuser who can create tables, triggers, publications and subscriptions can get the logical replication worker to perform inserts/updates/deletes on those tables, thereby firing those triggers, and executing the trigger code as superuser. That is ordinarily not something that a user can do simply by creating a table with a trigger, since there would be no mechanism to force the superuser to perform operations on the table.

After patch 0001 (which will be split in the next patch set, but hasn't been split yet) the user who creates the subscription is also the user whose permissions are checked when operating on the table and executing the trigger. This closes the security hole, so far as I am aware. I would very much like more eyeballs on this patch, and if anybody sees why this is an insufficient solution, please speak up. But it's not as if I punted the security issue down the road to some ill-defined future patch. On the contrary, this patch both creates the ability to delegate subscription creation authority to a non-superuser and closes the security hole which that would otherwise entail, or at least, that is the intent.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#44Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#38)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, Jul 1, 2021 at 11:59 AM Mark Dilger <mark.dilger@enterprisedb.com> wrote

On Jun 29, 2021, at 6:25 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:
Please find attached a new set of patches.

And again, this time attaching a fifth patch which includes the work to allow users who belong to the right security role to SET and ALTER SYSTEM SET variables without being a superuser.

In general, I don't like this kind of coding:

-       /* Superusers bypass all permission checking. */
-       if (superuser_arg(roleid))
+       /*
+        * Superusers and members of the pg_host_security role bypass all
+        * permission checking.
+        */
+       if (superuser_arg(roleid) ||
+               has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
                return true;

From a theoretical point of view, the superuser has the privileges of
every role, so this is redundant. From a coding point of view,
has_privs_of_role() does a superuser_arg() test already, and it seems
likely to be a loser to do it twice. Arguably, we should take the same
approach in code comments and documentation, rather than saying "You
must be superuser or a member of role XYZ" everywhere, but there seems
to be some existing precedent for mentioning superuser explicitly in
those cases, so maybe it's fine. I think it's kind of weird though,
because in other places we don't do it, e.g.:

unique or primary key constraint in the referenced table. The user
must have <literal>REFERENCES</literal> permission on the referenced table
(either the whole table, or the specific referenced columns). The

We could have said "or be superuser" there, but we didn't. It doesn't
seem efficient to say "or be superuser" every time we mention a
required permission, rather than just taking it as a given that the
superuser has all permissions. Yet, again, there's some precedent for
your approach:

To create a database, you must be a superuser or have the special
<literal>CREATEDB</literal> privilege.
See <xref linkend="sql-createrole"/>.

So I don't know. At the very least I think we should not do it as an
"or" in the code; what we want to do in comments and documentation I'm
less sure.

I think 0002 needs more explanation of the theory behind the specific
permissions granted. It enumerates what they are in both the commit
message and the documentation, but no theory is offered explaining why
these permissions are included and not others. I think my idea was
that "host" security would encompass everything that touches the
filesystem on the server where the database is running. I agree that
this naturally includes the ability to create a tablespace and
probably, at least for symmetry, the ability to drop it. But, you
can't ALTER a tablespace's location, so I see no reason why that
should be tied to this permission. I think it's arguable whether it
includes creating and dropping extensions, but I would argue that it
shouldn't. True, the extensions include SQL files installed in the
filesystem, and shared libraries also installed on the filesystem, but
ultimately everything you ever do involves files in some way, so I
don't see that as a very compelling argument. These operations on
extensions don't let you modify the filesystem in any way, and they
only let you read from carefully sandboxed things that are designed
for precisely that purpose, so the system administrator really already
has good control. The sorts of things I'd include in this category are
things like server-side COPY FROM or COPY TO. When we come to the
third thing the patch includes in this category, creating and dropping
event triggers, I *really* don't understand why that one is considered
host security. That one isn't touching the filesystem even to the
extent that the extension stuff is; it seems to me to be purely
internal to the database. Yeah, OK, that could involve writing files
because we make catalog entries, but so could any DDL. Now, maybe
there's a theory of operation that you have in mind that makes this
all make more sense the way you have it, but if so, it seems not to be
spelled out anywhere in the patch itself or the commit message you
wrote for it, so I'm in the dark.

I also tend to think that functions like pg_read_file() ought to come
with execute permission pre-granted, with grant option, to
pg_host_security, and perhaps similarly for adminpack.

From the department of nitpicking, all four of your commit messages
begin with the word "Reducing" which I think should be just "Reduce".
Otherwise, at least to me, it doesn't look like a proper sentence.

0004 has this kind of thing all over the place:

-       /* Superusers bypass all permission checking. */
-       if (superuser_arg(roleid))
+       /*
+        * Superusers and members of the pg_database_security role bypass all
+        * permission checking.
+        */

If that were true, the pg_database_security role would be equivalent
to superuser, which isn't the intent, so I think the comment needs
more thought. Also, I think that somewhere in the patch, either in
code comments or at the very least in the commit message, there needs
to be some justification of why the approach taken here is correct.
Like, the idea here is that if you have pg_database_security, you can
do whatever you want to objects within the database as long as you
don't try to touch the network or the host filesystem. So that would
imply that you can do anything you like to databases. So it sorta
makes sense to me that the patch goes about that by changing
pg_database_aclmask(). But I would feel better if there were some
explanation somewhere of why such a change is expecting to allow
precisely DDL-related database commands and nothing else. I think
that's true if pg_database_aclmask() is used for that purpose and not
for any other purpose, which may well be true, but I think it would be
best to be more explicit about the assumptions. I'm sure we don't want
a lengthy comment about this in every pg_*_aclmask() function, but I
think we should have a general explanation of it somewhere.

I also think that in this case, as in 0002 and 0003, we really need
some documentation of what this new role is all about. The
documentation changes in 0004 are really extremely minimal. Users need
to understand what they can expect to happen if they grant this new
role to someone, and hackers need to understand how to update the code
the next time they're patching something that interacts with this, and
I do not think that what you've got here now is going to be sufficient
to meet the needs of either group. (I realize that you may have been
planning to wait until there was more consensus to flesh this out, but
because the definitional issues here are so tricky, I don't think it
can wait in this case.)

In 0005, I do not think the function name role_has_privileges() is
sufficiently specific. Maybe role_can_change_guc()? Also, I think here
again you should draft some documentation changes. We're going to need
to indicate a category for every GUC somehow, and I'm not quite sure
how we're going to do that. If you want to just do a few examples for
now and also provide some general documentation on how the system is
intended to work, we can wait to do every GUC until we settle on how
to categorize everything, but I think we need to see what the general
plan looks like there. Consider the way that we currently indicate (a)
the GUC's data type and (b) when the GUC can be changed. The former is
shown in fixed point type in parentheses after the GUC name. The
latter is indicated by adding a sentence such as "This parameter can
only be set at server start." to everything that is PGC_POSTMASTER (I
think). What are we going to do with this new categorization?

I see that you've categorized things like restart_after_crash and
zero_damaged_pages as GUC_HOST_SECURITY. I think I like that, but it
again begs the definitional question. If host security basically means
touching the server filesystem, well, restart_after_crash doesn't. It
can be justified from the perspective that restart_after_crash is a
property of the host system, not something strictly internal to the
database. So when you go to write definitions of what these categories
are actually supposed to mean, they've got to be written in such a way
that these categorizations end up looking correct. Or else these have
got to be recategorized somehow. Anyway the point is that it "feels
good" but as you have it without the definitions it's hard to really
know.

The categorization of the logging GUCs looks haphazard to me. Why is
log_duration GUC_HOST_SECURITY but debug_print_parse is
GUC_DATABASE_SECURITY, for example? Again, we need clear definitions,
but I'm inclined to think this doesn't look great. I even less
understand why autovacuum is classified as GUC_HOST_SECURITY. That
seems like it's probably database security, while db_user_namespace
feels to me like network security. Another oddity is the replication
settings, which seem to be mostly classified as GUC_HOST_SECURITY. I
can see why you don't want to make them GUC_DATABASE_SECURITY, but eh,
what do they have to do with host security? It's similarly odd to me
that hash_mem_multiplier is GUC_DATABASE_SECURITY while work_mem, for
which it is a multiplier, is GUC_HOST_SECURITY.

Perhaps we need to break this up into a few more buckets to make sense
of it; I'm not really sure. For example, we could add buckets for
controlling what goes to the server log, resource utilization, system
integrity, and split inbound and outbound network security. Well, now
I just turned your three predefined roles into seven, which maybe is a
bad idea, but perhaps it's worth it if it gets us to a place where we
can clearly categorize everything. On the other hand, maybe if we did
that there'd just be a new set of things that look a little ambiguous.
I don't know. I guess trying to write a good set of definitions might
be job one.

--
Robert Haas
EDB: http://www.enterprisedb.com

#45Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#43)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, Jul 22, 2021 at 1:29 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

Certainly not. What I meant on May 28 by "eventually" was that the patch set (posted May 25 and named "v3") had not yet implemented such security, as I was fishing for comments from the community about whether the basic division of superuser into these new roles was the right division. Having gotten little feedback on that, on June 29 I posted another patch set (confusingly also named "v3", my apologies) in which patch 0001 had expanded to include new security restrictions.

Oh.

Prior to this patch, the logical replication workers run under the userid of the owner of the subscription. This is unchanged after the patch. The real difference is that prior to the patch, only superusers can own subscriptions, so checking permissions on tables during replication would be silly (though not harmful). The worker is assured of passing all such permission checks by virtue of being a superuser. After the patch, since subscription owners need not be superusers, the permission checks are no longer silly. There is no assurance that they have permission to apply changes to a table, so naturally that has to be checked, and it is.

Aren't you supposing that the set of superusers never changes? Unless
we have some code for this that we don't have elsewhere, a superuser
could create a subscription and then be de-superuser'd, or the
subscription's owner could be altered.

I
also think it should be accompanied not only by new test cases (which
you seem to have added, though I have not reviewed them in detail) but
also documentation changes (which seem to be missing, since the doc
changes are all about the new predefined role). This is a really
significant behavior change to logical replication IMV and shouldn't
just be slipped into some other patch.

I'm not sure what is meant by "slipped into some other patch", but I *think* you mean that the documentation changes should not be in a separate patch from the behavioral changes. I agree with that. I'll add documentation of the changes to logical replication in the same patch as the changes themselves.

I just meant that I think the behavioral change to logical replication
is significant in its own right and should be a separate patch.
Perhaps it's not as significant as I thought, but I still think it
should be made separately and likely documented as an incompatibility
with previous releases, unless I'm still confused.

It also seems based on Noah's comments and your response that there
might be some other issue here, and I haven't understood what that is,
but I think that should also be fixed separately, and first.
Considering all this, I would suggest not having this be patch #1 in
your series; make something come first that doesn't have
prerequisites.

The issue that gets thrown around in the email archive is that "arbitrary code" can be made to run on the subscriber side. As I understand the problem, this is because trigger functions can be created on tables with arbitrary code in them, and that code will be executed under the userid of the user who causes the trigger to fire during an insert/update/delete rather than as the user who created the trigger. This of course is not peculiar to logical replication; it is how triggers work generally. What is peculiar is that a non-superuser who can create tables, triggers, publications and subscriptions can get the logical replication worker to perform inserts/updates/deletes on those tables, thereby firing those triggers, and executing the trigger code as superuser. That is ordinarily not something that a user can do simply by creating a table with a trigger, since there would be no mechanism to force the superuser to perform operations on the table.

After patch 0001 (which will be split in the next patch set, but hasn't been split yet) the user who creates the subscription is also the user whose permissions are checked when operating on the table and executing the trigger. This closes the security hole, so far as I am aware. I would very much like more eyeballs on this patch, and if anybody sees why this is an insufficient solution, please speak up. But it's not as if I punted the security issue down the road to some ill-defined future patch. On the contrary, this patch both creates the ability to delegate subscription creation authority to a non-superuser and closes the security hole which that would otherwise entail, or at least, that is the intent.

OK. I thought Noah must be talking about some other problem, because
on May 28th you wrote "Oh, I agree that this patch set does not go the
extra step to make it safe" and I failed to understand that you
thought you'd addressed this in v4.

--
Robert Haas
EDB: http://www.enterprisedb.com

#46Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#44)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Robert Haas (robertmhaas@gmail.com) wrote:

On Thu, Jul 1, 2021 at 11:59 AM Mark Dilger <mark.dilger@enterprisedb.com> wrote

On Jun 29, 2021, at 6:25 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:
Please find attached a new set of patches.

And again, this time attaching a fifth patch which includes the work to allow users who belong to the right security role to SET and ALTER SYSTEM SET variables without being a superuser.

In general, I don't like this kind of coding:

-       /* Superusers bypass all permission checking. */
-       if (superuser_arg(roleid))
+       /*
+        * Superusers and members of the pg_host_security role bypass all
+        * permission checking.
+        */
+       if (superuser_arg(roleid) ||
+               has_privs_of_role(roleid, ROLE_PG_HOST_SECURITY))
return true;

From a theoretical point of view, the superuser has the privileges of

every role, so this is redundant. From a coding point of view,
has_privs_of_role() does a superuser_arg() test already, and it seems
likely to be a loser to do it twice. Arguably, we should take the same
approach in code comments and documentation, rather than saying "You
must be superuser or a member of role XYZ" everywhere, but there seems
to be some existing precedent for mentioning superuser explicitly in
those cases, so maybe it's fine. I think it's kind of weird though,
because in other places we don't do it, e.g.:

unique or primary key constraint in the referenced table. The user
must have <literal>REFERENCES</literal> permission on the referenced table
(either the whole table, or the specific referenced columns). The

I tend to agree that it'd be better to clean this up and just use
has_privs_of_role() and not include explicit superuser checks. I don't
think we need to constantly re-remind ourselves in the code that
superusers are members of all roles.

We could have said "or be superuser" there, but we didn't. It doesn't
seem efficient to say "or be superuser" every time we mention a
required permission, rather than just taking it as a given that the
superuser has all permissions. Yet, again, there's some precedent for
your approach:

To create a database, you must be a superuser or have the special
<literal>CREATEDB</literal> privilege.
See <xref linkend="sql-createrole"/>.

I'm a bit on the fence about the documentation side... I could be
convinced either way, really, but I generally agree that it'd be good to
pick one and be consistent. I don't think the places where we do/don't
mention it were done for any particular reason.

So I don't know. At the very least I think we should not do it as an
"or" in the code; what we want to do in comments and documentation I'm
less sure.

Agreed.

I think 0002 needs more explanation of the theory behind the specific
permissions granted. It enumerates what they are in both the commit
message and the documentation, but no theory is offered explaining why
these permissions are included and not others. I think my idea was
that "host" security would encompass everything that touches the
filesystem on the server where the database is running. I agree that
this naturally includes the ability to create a tablespace and
probably, at least for symmetry, the ability to drop it. But, you
can't ALTER a tablespace's location, so I see no reason why that
should be tied to this permission. I think it's arguable whether it
includes creating and dropping extensions, but I would argue that it
shouldn't. True, the extensions include SQL files installed in the
filesystem, and shared libraries also installed on the filesystem, but
ultimately everything you ever do involves files in some way, so I
don't see that as a very compelling argument. These operations on
extensions don't let you modify the filesystem in any way, and they
only let you read from carefully sandboxed things that are designed
for precisely that purpose, so the system administrator really already
has good control. The sorts of things I'd include in this category are
things like server-side COPY FROM or COPY TO. When we come to the
third thing the patch includes in this category, creating and dropping
event triggers, I *really* don't understand why that one is considered
host security. That one isn't touching the filesystem even to the
extent that the extension stuff is; it seems to me to be purely
internal to the database. Yeah, OK, that could involve writing files
because we make catalog entries, but so could any DDL. Now, maybe
there's a theory of operation that you have in mind that makes this
all make more sense the way you have it, but if so, it seems not to be
spelled out anywhere in the patch itself or the commit message you
wrote for it, so I'm in the dark.

I agree that installing extensions and event triggers are different
things, and if what we're left with is "create tablespaces" then maybe
we should have that as an explicit permission on its own.

I also tend to think that functions like pg_read_file() ought to come
with execute permission pre-granted, with grant option, to
pg_host_security, and perhaps similarly for adminpack.

When it comes to these- we already have pg_read_server_files and
pg_write_server_files, so I'm not sure I see why it'd make sense to have
another thing that grants filesystem access like this..?

0004 has this kind of thing all over the place:

-       /* Superusers bypass all permission checking. */
-       if (superuser_arg(roleid))
+       /*
+        * Superusers and members of the pg_database_security role bypass all
+        * permission checking.
+        */

If that were true, the pg_database_security role would be equivalent
to superuser, which isn't the intent, so I think the comment needs
more thought. Also, I think that somewhere in the patch, either in
code comments or at the very least in the commit message, there needs
to be some justification of why the approach taken here is correct.
Like, the idea here is that if you have pg_database_security, you can
do whatever you want to objects within the database as long as you
don't try to touch the network or the host filesystem. So that would
imply that you can do anything you like to databases. So it sorta
makes sense to me that the patch goes about that by changing
pg_database_aclmask(). But I would feel better if there were some
explanation somewhere of why such a change is expecting to allow
precisely DDL-related database commands and nothing else. I think
that's true if pg_database_aclmask() is used for that purpose and not
for any other purpose, which may well be true, but I think it would be
best to be more explicit about the assumptions. I'm sure we don't want
a lengthy comment about this in every pg_*_aclmask() function, but I
think we should have a general explanation of it somewhere.

Considering it's a role, and roles aren't specific to databases, I don't
think "pg_database_security" is a good name. To me, at least, it
implies a way to allow a given user the ability to do most everything in
a specific database, but that's not the case at all, and further saying
'security' comes across as suggesting that this would be a role granted
to someone setting up permissions or otherwise modifying the database's
security aspects, not someone who is being given full access to every
object in the system.

I'm also left wondering if this doesn't end up introducing opportunities
for someone with this role to become superuser pretty easily. Maybe it
does and maybe we're ok with that, but I would think that it'd be really
useful to have a role that can't become superuser easily which can
access/modify most objects in the system.

I also think that in this case, as in 0002 and 0003, we really need
some documentation of what this new role is all about. The
documentation changes in 0004 are really extremely minimal. Users need
to understand what they can expect to happen if they grant this new
role to someone, and hackers need to understand how to update the code
the next time they're patching something that interacts with this, and
I do not think that what you've got here now is going to be sufficient
to meet the needs of either group. (I realize that you may have been
planning to wait until there was more consensus to flesh this out, but
because the definitional issues here are so tricky, I don't think it
can wait in this case.)

Agreed.

In 0005, I do not think the function name role_has_privileges() is
sufficiently specific. Maybe role_can_change_guc()? Also, I think here
again you should draft some documentation changes. We're going to need
to indicate a category for every GUC somehow, and I'm not quite sure
how we're going to do that. If you want to just do a few examples for
now and also provide some general documentation on how the system is
intended to work, we can wait to do every GUC until we settle on how
to categorize everything, but I think we need to see what the general
plan looks like there. Consider the way that we currently indicate (a)
the GUC's data type and (b) when the GUC can be changed. The former is
shown in fixed point type in parentheses after the GUC name. The
latter is indicated by adding a sentence such as "This parameter can
only be set at server start." to everything that is PGC_POSTMASTER (I
think). What are we going to do with this new categorization?

Agreed.

I see that you've categorized things like restart_after_crash and
zero_damaged_pages as GUC_HOST_SECURITY. I think I like that, but it
again begs the definitional question. If host security basically means
touching the server filesystem, well, restart_after_crash doesn't. It
can be justified from the perspective that restart_after_crash is a
property of the host system, not something strictly internal to the
database. So when you go to write definitions of what these categories
are actually supposed to mean, they've got to be written in such a way
that these categorizations end up looking correct. Or else these have
got to be recategorized somehow. Anyway the point is that it "feels
good" but as you have it without the definitions it's hard to really
know.

I don't really see either of those as being filesystem changing things.

The categorization of the logging GUCs looks haphazard to me. Why is
log_duration GUC_HOST_SECURITY but debug_print_parse is
GUC_DATABASE_SECURITY, for example? Again, we need clear definitions,
but I'm inclined to think this doesn't look great. I even less
understand why autovacuum is classified as GUC_HOST_SECURITY. That
seems like it's probably database security, while db_user_namespace
feels to me like network security. Another oddity is the replication
settings, which seem to be mostly classified as GUC_HOST_SECURITY. I
can see why you don't want to make them GUC_DATABASE_SECURITY, but eh,
what do they have to do with host security? It's similarly odd to me
that hash_mem_multiplier is GUC_DATABASE_SECURITY while work_mem, for
which it is a multiplier, is GUC_HOST_SECURITY.

Perhaps we need to break this up into a few more buckets to make sense
of it; I'm not really sure. For example, we could add buckets for
controlling what goes to the server log, resource utilization, system
integrity, and split inbound and outbound network security. Well, now
I just turned your three predefined roles into seven, which maybe is a
bad idea, but perhaps it's worth it if it gets us to a place where we
can clearly categorize everything. On the other hand, maybe if we did
that there'd just be a new set of things that look a little ambiguous.
I don't know. I guess trying to write a good set of definitions might
be job one.

It's often the case that logging/auditing are handled by a different
group than those who might be creating/modifying objects. Yet another
group is often the group that actually handles granting access. Broad
classes being:

- Users
- Auditors (controls what's logged, what is audited, etc)
- Security (controls who has access to what)

Note that 'security' and 'auditors' shouldn't have access to the actual
data either, or have the ability to do things like modify data. Not
sure all of this quite fits what we're going for here but figured it
might help with sorting out what other buckets we need.

Thanks,

Stephen

#47Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#46)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, Jul 22, 2021 at 3:00 PM Stephen Frost <sfrost@snowman.net> wrote:

I'm a bit on the fence about the documentation side... I could be
convinced either way, really, but I generally agree that it'd be good to
pick one and be consistent. I don't think the places where we do/don't
mention it were done for any particular reason.

So I don't know. At the very least I think we should not do it as an
"or" in the code; what we want to do in comments and documentation I'm
less sure.

Agreed.

Thanks for weighing in.

I also tend to think that functions like pg_read_file() ought to come
with execute permission pre-granted, with grant option, to
pg_host_security, and perhaps similarly for adminpack.

When it comes to these- we already have pg_read_server_files and
pg_write_server_files, so I'm not sure I see why it'd make sense to have
another thing that grants filesystem access like this..?

It's awkward. I think that we can't afford to create a separate
predefined role for every single thing that someone could
theoretically want to sever, because then we'll have a zillion of them
and it will be unmaintainable. So the idea was to try to break up
everything someone might want to do either via DDL or by setting GUCs
into one of three categories: internal to the database
(pg_database_security), facing outward toward the network
(pg_network_security), and facing inward toward the host
(pg_host_security). If we didn't have any predefined security-related
roles already, this would still have complications, but as things
stand it has more, because as you point out, pg_read_server_files
overlaps with pg_host_security. But what do we do about that? Neither
pg_read_server_files nor pg_write_server_files covers the ability to
create tablespaces or set log_directory, but I think it's more
desirable to lump those things together in one bucket than to have a
ton of separate buckets for each individual thing. I guess one option
would to grant the existing roles pg_read_server_files and
pg_write_server_files to the new pg_host_security role, or whatever we
decide to call it (pg_access_server_filesystem?
pg_administer_server_files? pg_hack_postgres_account?). But I'm open
to suggestions. See also below here on the overall intent.

I'm also left wondering if this doesn't end up introducing opportunities
for someone with this role to become superuser pretty easily. Maybe it
does and maybe we're ok with that, but I would think that it'd be really
useful to have a role that can't become superuser easily which can
access/modify most objects in the system.

Creating something like that is precisely the intention here because,
like you, I think that would be extremely handy. If it's possible for
that role to become superuser, we've lost the plot.

I don't really see either of those as being filesystem changing things.

I think the thought process here was that if you are a managed
services provider you would not want the user to change
zero_damaged_pages or wal_sync_method or things like that because that
stuff is the provider's responsibility; similar for the recovery
settings. But yes ... we need something better here, I think.

It's often the case that logging/auditing are handled by a different
group than those who might be creating/modifying objects. Yet another
group is often the group that actually handles granting access. Broad
classes being:

- Users
- Auditors (controls what's logged, what is audited, etc)
- Security (controls who has access to what)

Note that 'security' and 'auditors' shouldn't have access to the actual
data either, or have the ability to do things like modify data. Not
sure all of this quite fits what we're going for here but figured it
might help with sorting out what other buckets we need.

Hmm, interesting point. The division between the "security" group, who
I suppose would be the DBA, and the "auditors" group is one I had
thought about only slightly.

--
Robert Haas
EDB: http://www.enterprisedb.com

#48Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#44)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 22, 2021, at 11:21 AM, Robert Haas <robertmhaas@gmail.com> wrote:

When we come to the
third thing the patch includes in this category, creating and dropping
event triggers, I *really* don't understand why that one is considered
host security. That one isn't touching the filesystem even to the
extent that the extension stuff is; it seems to me to be purely
internal to the database. Yeah, OK, that could involve writing files
because we make catalog entries, but so could any DDL. Now, maybe
there's a theory of operation that you have in mind that makes this
all make more sense the way you have it, but if so, it seems not to be
spelled out anywhere in the patch itself or the commit message you
wrote for it, so I'm in the dark.

I agree with the need to document the theory behind all this. Event triggers are dangerous because they can trap a superuser into executing code they do not intend:

create table super_special (big_darn_secret integer);
revoke all privileges on super_special from public;
insert into super_special values (42);
-- imagine that "untrustworth_bob" is a member of as-yet unimplemented role
-- pg_database_security, and has the ability to create event triggers; to simulate
-- that, we'll put bob into superuser temporarily while the event trigger is
-- created, then remove superuser.
create role untrustworthy_bob superuser;
set session authorization untrustworthy_bob;
create function update_super_special_big_darn_secret() returns event_trigger as $$
begin
-- note that non-superusers should draw an error if they try this
update super_special set big_darn_secret = big_darn_secret + 1;

-- note that non-pg_host_security roles should draw an error if they try this
perform pg_rotate_logfile();
end;
$$ language plpgsql;
create event trigger secret_sauce on sql_drop
execute procedure update_super_special_big_darn_secret();
reset session authorization;
alter role untrustworthy_bob nosuperuser;
set session authorization untrustworthy_bob;
update super_special set big_darn_secret = big_darn_secret + 1;
ERROR: permission denied for table super_special
select pg_rotate_logfile();
ERROR: permission denied for function pg_rotate_logfile
reset session authorization;
select * from super_special;
big_darn_secret
-----------------
42
(1 row)

create table foo_tmp (t integer);
drop table foo_tmp;
WARNING: rotation not possible because log collection not active
select * from super_special;
big_darn_secret
-----------------
43
(1 row)

When the superuser dropped table foo_tmp, pg_rotate_logfile() got called, as did an update of table super_special. Any other function could have been called from there instead. That's a big deal. If creating event triggers is delegated to nonsuperuser members of pg_database_security, I think it means that pg_database_security has a privilege escalation path to become superuser. Since pg_host_security already has such an escalation path, it makes more sense to me to use this role for event trigger creation. The argument for dropping event triggers is less clear, but it seems that event triggers may be used to implement an auditing system, and we wouldn't want pg_database_security to be enough privilege to circumvent the auditing system.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#49Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#48)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, Jul 22, 2021 at 5:35 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

I agree with the need to document the theory behind all this. Event triggers are dangerous because they can trap a superuser into executing code they do not intend:

That's true. Regular triggers and views can also do that, and so can
operators and functions that capture queries intended to reference
system-defined objects. It's already the case that a superuser who
executes any optimizable query potentially compromises the system
unless (a) they first sanitize their search_path and (b) the query is
a SELECT that involves no views or an INSERT, UPDATE, or DELETE on a
table that has no triggers. However, event triggers owned by
non-superusers would extend the hazard to nearly all DDL commands.

Classifying event triggers as "host" security doesn't seem like the
right solution, though. I think the only way that fits into the "host"
security category is if you use some kind of definition that works by
exclusion: things that are "database" security shouldn't have
consequence X, therefore anything that does must go in some other
category. I think that kind of definition is very hard for people to
understand, though. It's much nicer to have definitions that tell you
what does go into a category than what doesn't.

I suppose one alternative we could consider is just leaving some
things uncategorized. I had hoped we could put everything in a bucket
so that the superuser role was really divided into pieces and not just
having bits chipped off of it, but maybe that's too ambitious. The
more we drift into saying that some things like "well this has to be
host security because database security breaks the model" the more
useless host security is likely to be as a concept. It's not a related
collection of things any more; it's just whatever didn't fit in the
other bucket. And nobody wants to GRANT a_bunch_of_other_stuff.

However, I also wonder whether we should think about engineering a
solution to this problem. For example, we have a row_security GUC. If
you set it to off, no RLS policies will be applied; if applying one
would have been mandatory, you will get an error instead. I don't
think that exact design will work here because there's no such thing
as permission to bypass event triggers, but we could have a
fire_event_triggers GUC (or whatever we call it) which is normally
"on" but privileged users can turn it off. Now if you're worried about
this problem, you have an easy way around it.

And I think that's a good illustration of why it's a bad idea to
categorize things according to whether or not they have a certain
consequence. Suppose we said, ah well, let's make event triggers
"host" security because it's too dangerous to make them "database"
security. Well then say someone comes along and implements the feature
I just described, reducing the danger. Do we then reclassify that
feature as "database" security? The original rationale for making it
something else is no longer valid, but on the other hand, what about
backward compatibility? Classifying things based on what they do,
rather than on the ultimate consequences that they may have, avoids
this kind of conundrum.

--
Robert Haas
EDB: http://www.enterprisedb.com

#50Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#49)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 23, 2021, at 6:22 AM, Robert Haas <robertmhaas@gmail.com> wrote:

And I think that's a good illustration of why it's a bad idea to
categorize things according to whether or not they have a certain
consequence.

Well, one very big reason for wanting to break superuser into separate roles is to make postgres-as-a-service providers comfortable granting more privileges to customers. If we design any privilege escalations into one of those roles, then no sensible service provider is ever going to grant it to anybody, which fairly much defeats the purpose of this work. The privilege escalations we need to prevent are not just escalations to superuser, but also escalations to other privileged roles. Contrary to this design goal, the "pg_host_security" role is a bit of a synonym for "superuser", since being able to write files or execute shell commands is a path to superuser, and we can't do too much about that. "pg_database_security", "pg_network_security", and "pg_logical_replication" are not synonyms for "superuser".

I like your idea of designing some extra security around event triggers to resolve their privilege escalation problems. A GUC seems the wrong approach to me.

I think a superuser-only GUC to suppress firing event triggers won't quite cut it, because the other privileged roles would still be in danger of being trapped by a clever pg_database_security event trigger author; but extending permissions on the GUC to include the other roles would mean that they, and not just superuser, could evade event trigger based auditing solutions. That is odd, because you wouldn't expect granting pg_network_security or pg_logical_replication to have anything to do with granting privilege to defeat audit logging.

A superuser-only GUC for this is also a bit too heavy handed. The superuser may not want to circumvent all event triggers, just those put in place by the pg_database_security role. If that sounds arbitrary, just consider the postgres-as-a-service case. The superuser wants to be able to grant pg_database_security to the customer, but doesn't want the customer to be able to use that to trap the service provider.

Instead of a GUC, how about checking permissions inside event triggers for both the user firing the trigger *and* the trigger owner. That's a backward compatibility break, but maybe not a bad one, since until now only superusers have been allowed to create event triggers. Systems which create an event trigger using a role that later has superuser revoked, or which change ownership to a non-superuser, will see a behavior change. I'm not super happy with that, but I think it is better than the GUC based solution. Event triggers owned by a superuser continue to work as they do now. Event triggers owned by a non-superuser cannot be used to force a privileged user to run a command that the event trigger owner could not have run for themself.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#51Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#50)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Jul 23, 2021, at 6:22 AM, Robert Haas <robertmhaas@gmail.com> wrote:
And I think that's a good illustration of why it's a bad idea to
categorize things according to whether or not they have a certain
consequence.

Well, one very big reason for wanting to break superuser into separate roles is to make postgres-as-a-service providers comfortable granting more privileges to customers. If we design any privilege escalations into one of those roles, then no sensible service provider is ever going to grant it to anybody, which fairly much defeats the purpose of this work. The privilege escalations we need to prevent are not just escalations to superuser, but also escalations to other privileged roles. Contrary to this design goal, the "pg_host_security" role is a bit of a synonym for "superuser", since being able to write files or execute shell commands is a path to superuser, and we can't do too much about that. "pg_database_security", "pg_network_security", and "pg_logical_replication" are not synonyms for "superuser".

I like your idea of designing some extra security around event triggers to resolve their privilege escalation problems. A GUC seems the wrong approach to me.

I think a superuser-only GUC to suppress firing event triggers won't quite cut it, because the other privileged roles would still be in danger of being trapped by a clever pg_database_security event trigger author; but extending permissions on the GUC to include the other roles would mean that they, and not just superuser, could evade event trigger based auditing solutions. That is odd, because you wouldn't expect granting pg_network_security or pg_logical_replication to have anything to do with granting privilege to defeat audit logging.

These considerations were addressed with row_security by allowing the
GUC to be set by anyone, but throwing an ERROR if RLS would have been
required by the query instead of just allowing it. I don't see any
obvious reason why that couldn't be the case for event triggers..?

A superuser-only GUC for this is also a bit too heavy handed. The superuser may not want to circumvent all event triggers, just those put in place by the pg_database_security role. If that sounds arbitrary, just consider the postgres-as-a-service case. The superuser wants to be able to grant pg_database_security to the customer, but doesn't want the customer to be able to use that to trap the service provider.

Having a trust system for triggers, functions, etc, where you can say
whose triggers you're ok running might be interesting but it also seems
like an awful lot of work and I'm not sure that it's actually really
that much better than a GUC similar to row_security.

Instead of a GUC, how about checking permissions inside event triggers for both the user firing the trigger *and* the trigger owner. That's a backward compatibility break, but maybe not a bad one, since until now only superusers have been allowed to create event triggers. Systems which create an event trigger using a role that later has superuser revoked, or which change ownership to a non-superuser, will see a behavior change. I'm not super happy with that, but I think it is better than the GUC based solution. Event triggers owned by a superuser continue to work as they do now. Event triggers owned by a non-superuser cannot be used to force a privileged user to run a command that the event trigger owner could not have run for themself.

I'm not following what this suggestion is, exactly. What permissions
are being checked inside the event trigger being run, exactly..? Who
would get to set those permissions? Any object owner, today, can GRANT
access to any other user in the system, we don't prevent that.

Thanks,

Stephen

#52Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#51)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 23, 2021, at 9:20 AM, Stephen Frost <sfrost@snowman.net> wrote:

These considerations were addressed with row_security by allowing the
GUC to be set by anyone, but throwing an ERROR if RLS would have been
required by the query instead of just allowing it. I don't see any
obvious reason why that couldn't be the case for event triggers..?

Because a postgres-as-a-service provider may want to install their own event triggers as well as allowing the customer to do so, and it seems too coarse grained to either skip all of them or none of them. It's perfectly reasonable to want to skip your customer's event triggers while not skipping your own.

A superuser-only GUC for this is also a bit too heavy handed. The superuser may not want to circumvent all event triggers, just those put in place by the pg_database_security role. If that sounds arbitrary, just consider the postgres-as-a-service case. The superuser wants to be able to grant pg_database_security to the customer, but doesn't want the customer to be able to use that to trap the service provider.

Having a trust system for triggers, functions, etc, where you can say
whose triggers you're ok running might be interesting but it also seems
like an awful lot of work and I'm not sure that it's actually really
that much better than a GUC similar to row_security.

My first impression was that it is too much work, which is why I put event trigger creation into the pg_host_security bucket. It might be more sane to just leave it as superuser-only. But if we're going to fix this and make it a pg_database_security usable feature, then I think we need to solve the problems a naive approach would create for service providers.

Instead of a GUC, how about checking permissions inside event triggers for both the user firing the trigger *and* the trigger owner. That's a backward compatibility break, but maybe not a bad one, since until now only superusers have been allowed to create event triggers. Systems which create an event trigger using a role that later has superuser revoked, or which change ownership to a non-superuser, will see a behavior change. I'm not super happy with that, but I think it is better than the GUC based solution. Event triggers owned by a superuser continue to work as they do now. Event triggers owned by a non-superuser cannot be used to force a privileged user to run a command that the event trigger owner could not have run for themself.

I'm not following what this suggestion is, exactly. What permissions
are being checked inside the event trigger being run, exactly..? Who
would get to set those permissions? Any object owner, today, can GRANT
access to any other user in the system, we don't prevent that.

I don't think GRANT is really relevant here, as what I'm trying to avoid is a less privileged user trapping a more privileged user into running a function that the less privileged user can't directly run. Certainly such a user cannot GRANT privilege on a function that they cannot even run, else your system has a privilege escalation hazard already.

It's a substantial change to the security model, but the idea is that inside an event trigger, we'd SetUserIdAndSecContext to a new type of context similar to SECURITY_LOCAL_USERID_CHANGE but where instead of simply changing to the owner of the event trigger, we'd be changing to a virtual user who is defined to only have the privileges of the intersection of the current user and the event trigger owner. That entails at least two problems, though I don't see that they are insoluble. First, all places in the code that check permissions need to check in a way that works in this mode. We might not be able to call GetUserId() as part of aclchecks any longer, and instead have to call some new function GetVirtualUserId() as part of aclchecks, reserving GetUserId() just for cases where you're not trying to perform a permissions check. Second, since event triggers can cause other event triggers to fire, we'd need these virtual users to be able to nest, so we'd have to push a stack of users and check all of them in each case, and we'd have to think carefully about how to handle errors, since GetUserIdAndSecContext and SetUserIdAndSecContext are called inside transaction start and end, where errors must not be raised. But since transaction start and end would never want to set or reset the state to a virtual user, those should never throw, and the calls elsewhere are at liberty to throw if they like, so we'd just have to be careful to use the right version of these operations in the right places.

This all sounds a bit much, but it has knock-on benefits. We'd be able to preserve the historical behavior of table triggers while having a mode that behaves in this new way, which means that privileged users could be a bit more cavalier than they can now about DML against user defined tables. This mode might become the standard operating mode for service provider scripts, whether running as superuser, as pg_network_security, or whatever. This might also be used to secure operations on indexes over user defined functions. If the index operation is run in this mode, the index operation could throw an error rather than performing a function maliciously embedded inside the index function call.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#53Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#50)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Fri, Jul 23, 2021 at 12:11 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

A superuser-only GUC for this is also a bit too heavy handed.

Yeah, but you're inventing a system for allowing the restriction on a
GUC to be something other than is-superuser in the very patch we're
talking about. So it could be something like is-database-security.
Therefore I don't grok the objection.

--
Robert Haas
EDB: http://www.enterprisedb.com

#54Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#53)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 23, 2021, at 1:54 PM, Robert Haas <robertmhaas@gmail.com> wrote:

Yeah, but you're inventing a system for allowing the restriction on a
GUC to be something other than is-superuser in the very patch we're
talking about. So it could be something like is-database-security.
Therefore I don't grok the objection.

I'm not objecting to how hard it would be to implement. I'm objecting to the semantics. If the only non-superuser who can set the GUC is pg_database_security, then it is absolutely worthless in preventing pg_database_security from trapping actions performed by pg_network_security members. On the other hand, if pg_network_security can also set the GUC, then pg_network_security can circumvent audit logging that pg_database_security put in place. What's the point in having these as separate roles if they can circumvent each other's authority?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#55Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Mark Dilger (#54)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 23, 2021, at 1:57 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

What's the point in having these as separate roles if they can circumvent each other's authority?

That was probably too brief a reply, so let me try again. If the GUC circumvents the event trigger, then my answer above stands. If the GUC merely converts the event trigger into an error, then you have the problem that the customer can create event triggers which the service provider will need to disable (because they cause the service providers legitimate actions to error rather than succeed). Presumably the service provider can disable them logged in as superuser. But that means the service customer has their event trigger turned off, at least for some length of time, which is not good if the event trigger is performing audit logging for compliance purposes, etc. Also, we can't say whether pg_network_security role has been given to the customer, or if that is being kept for the provider's use only, so we're not really sure whether pg_network_security should be able to do these sorts of things, but in the case that the service provider is keeping pg_network_security for themself, it seems they wouldn't want the customer to cause pg_network_security operations to fail. We can't make too many assumptions about the exact relationship between those two roles.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#56Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Mark Dilger (#55)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 23, 2021, at 2:04 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

If the GUC merely converts the event trigger into an error, then you have the problem that the customer can create event triggers which the service provider will need to disable (because they cause the service providers legitimate actions to error rather than succeed).

I'd like to expound on this a little more.

Imagine the service provider has scripts that perform actions within the database, such as physical replication, or the creation and removal of database users in response to actions taken at the service portal web interface, and they don't want the actions performed by those scripts to be leveraged by the customer to break out of the jail.

The customer has event triggers which perform no illicit activities. They don't try to break out of the jail. But for compliance with HIPAA regulations (or whatever), they need to audit log everything, and they can't just have the service provider's actions unlogged.

What to do? If the service provider disables the event triggers, then the customer will fail their regulation audit. If the service provider allows the event triggers to fire, the customer might create a new event trigger embedding illicit actions. The service provider is totally stuck.

OTOH, if there were a mechanism by which an event trigger could run with only the intersection of the privileges enjoyed by the service provider's scripts and the customer's event trigger owner, then the service provider can allow their own actions to be logged, without fear that any hijacking of their privilege will occur.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#57Robert Haas
robertmhaas@gmail.com
In reply to: Mark Dilger (#54)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Fri, Jul 23, 2021 at 4:57 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

On Jul 23, 2021, at 1:54 PM, Robert Haas <robertmhaas@gmail.com> wrote:
Yeah, but you're inventing a system for allowing the restriction on a
GUC to be something other than is-superuser in the very patch we're
talking about. So it could be something like is-database-security.
Therefore I don't grok the objection.

I'm not objecting to how hard it would be to implement. I'm objecting to the semantics. If the only non-superuser who can set the GUC is pg_database_security, then it is absolutely worthless in preventing pg_database_security from trapping actions performed by pg_network_security members. On the other hand, if pg_network_security can also set the GUC, then pg_network_security can circumvent audit logging that pg_database_security put in place. What's the point in having these as separate roles if they can circumvent each other's authority?

Right, that would be bad. I had forgotten how this worked, but it
seems that event triggers are called with the privileges of the user
whose action caused the event trigger to be fired, not the privileges
of the user who owns the trigger. So as you say, if you can get
somebody to do something that causes an event trigger to be fired, you
can do anything they can do. As far as I can see, the only reasonable
conclusion is that, unless we change the security model, doing
anything with event triggers will have to remain superuser-only. In
other words I don't think we can give it to any of
pg_database_security or pg_host_security or pg_network_security, or
any similar role. We could have a pg_event_triggers role that is
documented as able to usurp superuser, but I don't see the point.

Now, the other alternative is changing the security model for event
triggers, but I am not sure that really fixes anything. You proposed
having a new mode where someone could only do things that could be
done by either user, but that troubles me for a number of reasons. One
is that it often makes a difference who actually did a particular
operation. For example it might be that alice and bob both have the
ability to give charlie permission on some table, but the ACL for that
table will record who actually issued the grant. It might be that both
alice and bob have the ability to create a table, but the table will
be owned by whoever actually does. Suppose bob is about to be
terminated but can arrange for alice (who is a star performer) to
grant permissions to his accomplice charlie, thus arranging for those
permissions to survive his impending termination. That's bad.

Also, what about just throwing an ERROR? Anybody's allowed to do that,
but that doesn't mean that it's OK for one user to block everything
some other user wants to do. If seward and bates respectively have
pg_database_security and pg_network_security, it's OK for seward to
interfere with attempts by bates to access database objects, but it's
not OK for seward to prevent bates from reconfiguring network access
to PostgreSQL. Because event triggers don't fire for ALTER SYSTEM or
DDL commands on global objects, we might almost be OK here, but I'm
not sure if it's completely OK.

I'm pretty sure that the reason we set this up the way we did was
because we assumed that the person creating the event trigger would
always have maximum privileges i.e. superuser. Therefore, it seemed
"safer" to run the code under the less-privileged account. If we'd
thought about this from the perspective of having non-superuser-owned
event triggers, I think we would have made the opposite decision,
since running code as yourself in somebody else's session is less
dangerous than running code as somebody else straight up.

--
Robert Haas
EDB: http://www.enterprisedb.com

#58Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#57)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Robert Haas (robertmhaas@gmail.com) wrote:

On Fri, Jul 23, 2021 at 4:57 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

On Jul 23, 2021, at 1:54 PM, Robert Haas <robertmhaas@gmail.com> wrote:
Yeah, but you're inventing a system for allowing the restriction on a
GUC to be something other than is-superuser in the very patch we're
talking about. So it could be something like is-database-security.
Therefore I don't grok the objection.

I'm not objecting to how hard it would be to implement. I'm objecting to the semantics. If the only non-superuser who can set the GUC is pg_database_security, then it is absolutely worthless in preventing pg_database_security from trapping actions performed by pg_network_security members. On the other hand, if pg_network_security can also set the GUC, then pg_network_security can circumvent audit logging that pg_database_security put in place. What's the point in having these as separate roles if they can circumvent each other's authority?

Right, that would be bad. I had forgotten how this worked, but it
seems that event triggers are called with the privileges of the user
whose action caused the event trigger to be fired, not the privileges
of the user who owns the trigger. So as you say, if you can get
somebody to do something that causes an event trigger to be fired, you
can do anything they can do. As far as I can see, the only reasonable
conclusion is that, unless we change the security model, doing
anything with event triggers will have to remain superuser-only. In
other words I don't think we can give it to any of
pg_database_security or pg_host_security or pg_network_security, or
any similar role. We could have a pg_event_triggers role that is
documented as able to usurp superuser, but I don't see the point.

Right- event triggers work just the same as how regular triggers on
tables do and how RLS works. All of these also have the possibility of
leveraging security definer functions, of course, but that doesn't
address the issue of the trigger author attempting to attack the
individual running the trigger.

I do think it'd be useful to have a pg_event_triggers or such role, so
that someone could create them without being a superuser. A bit more
discussion about that below though..

Now, the other alternative is changing the security model for event
triggers, but I am not sure that really fixes anything. You proposed
having a new mode where someone could only do things that could be
done by either user, but that troubles me for a number of reasons. One
is that it often makes a difference who actually did a particular
operation. For example it might be that alice and bob both have the
ability to give charlie permission on some table, but the ACL for that
table will record who actually issued the grant. It might be that both
alice and bob have the ability to create a table, but the table will
be owned by whoever actually does. Suppose bob is about to be
terminated but can arrange for alice (who is a star performer) to
grant permissions to his accomplice charlie, thus arranging for those
permissions to survive his impending termination. That's bad.

As I understood Mark's suggestion, the trigger would run but would have
the privileges of the intersection of both user's permissions, which is
an interesting idea but not one we've got any way to really do today as
each privilege check would now need to check two different roles for
privilege- and if one of the privilege checks fails, then what..?
Presumably there would be an ERROR returned, meaning that the operation
would be able to be prevented from happening by the trigger author,
which was objected to as not being acceptable either, per below.

Also, what about just throwing an ERROR? Anybody's allowed to do that,
but that doesn't mean that it's OK for one user to block everything
some other user wants to do. If seward and bates respectively have
pg_database_security and pg_network_security, it's OK for seward to
interfere with attempts by bates to access database objects, but it's
not OK for seward to prevent bates from reconfiguring network access
to PostgreSQL. Because event triggers don't fire for ALTER SYSTEM or
DDL commands on global objects, we might almost be OK here, but I'm
not sure if it's completely OK.

Regular table triggers can be used to block someone from messing with
that table, so this isn't entirely unheard of. Deciding that someone
with event trigger access is allowed to prevent certain things from
happening in a database that they're allowed to connect and create event
triggers in may not be completely unreasonable.

I'm pretty sure that the reason we set this up the way we did was
because we assumed that the person creating the event trigger would
always have maximum privileges i.e. superuser. Therefore, it seemed
"safer" to run the code under the less-privileged account. If we'd
thought about this from the perspective of having non-superuser-owned
event triggers, I think we would have made the opposite decision,
since running code as yourself in somebody else's session is less
dangerous than running code as somebody else straight up.

Not sure that this is really the case- as noted above, it's the same for
table-level triggers and RLS.

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Jul 23, 2021, at 2:04 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

If the GUC merely converts the event trigger into an error, then you have the problem that the customer can create event triggers which the service provider will need to disable (because they cause the service providers legitimate actions to error rather than succeed).

I'd like to expound on this a little more.

Imagine the service provider has scripts that perform actions within the database, such as physical replication, or the creation and removal of database users in response to actions taken at the service portal web interface, and they don't want the actions performed by those scripts to be leveraged by the customer to break out of the jail.

These specific use-cases are interesting because they seem to all be
about global-level objects, right? Surely the service provider would be
better off having a separate database that they connect to, which no one
else has access to. Not to mention that event triggers can't be created
on global objects anyway, but even so.

On the flip side- if we create a way for roles to be created by a
non-superuser in a way that doesn't end up giving away the farm (unlike
CREATEROLE privs today), then suddenly the service provider doesn't have
any need to use a superuser role or otherwise privileged role to perform
that action and they could either punt that entirely to the client to
deal with, or have a way to log in *as* the client to perform the
action while not risking the client ending up getting the service
provider's system to run code that the client wrote.

And this last point is the most relevant to all of this, in my view.
Everything that service providers provide web forms and such for to
allow the client to perform things that they can't just GRANT directly
to the client's account is the problem- they don't write those web pages
and run things as superuser because they want to, they do it because the
database system doesn't allow them any way to do it that doesn't give up
the farm (or, perhaps in some cases, they have to do *other* things too,
that clearly they can't just give the client's account access to do,
like creating tablespaces where the volume has to also be created and
attached to the instance, but those are cases where we probably don't
need to come up with a better solution..? though I'm not against a role
to allow creating tablespaces that isn't a superuser, since the service
provider would probably be happier running that action with that role as
a good way to reduce risk further).

The customer has event triggers which perform no illicit activities. They don't try to break out of the jail. But for compliance with HIPAA regulations (or whatever), they need to audit log everything, and they can't just have the service provider's actions unlogged.

What to do? If the service provider disables the event triggers, then the customer will fail their regulation audit. If the service provider allows the event triggers to fire, the customer might create a new event trigger embedding illicit actions. The service provider is totally stuck.

OTOH, if there were a mechanism by which an event trigger could run with only the intersection of the privileges enjoyed by the service provider's scripts and the customer's event trigger owner, then the service provider can allow their own actions to be logged, without fear that any hijacking of their privilege will occur.

If all such actions could be performed by the client role, then the
service provider suddenly doesn't have such a concern or issue- they can
tell the client to do whatever it is and then it gets logged properly.
In my view, that's really the end goal here, we just need to build these
things in a way that granting such privileges to the client doesn't end
up giving them a way to get superuser privileges.

Thanks,

Stephen

#59Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#58)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Jul 26, 2021 at 4:05 PM Stephen Frost <sfrost@snowman.net> wrote:

As I understood Mark's suggestion, the trigger would run but would have
the privileges of the intersection of both user's permissions, which is
an interesting idea but not one we've got any way to really do today as
each privilege check would now need to check two different roles for
privilege- and if one of the privilege checks fails, then what..?
Presumably there would be an ERROR returned, meaning that the operation
would be able to be prevented from happening by the trigger author,
which was objected to as not being acceptable either, per below.

I think I may not have expressed myself clearly enough here. What I'm
concerned about is: Alice should not be permitted to preventing Bob
from doing something which Bob is allowed to do and Alice is not
allowed to do. If Alice is the administrator of PostgreSQL's XYZ
subsystem, she can permit Bob from using it if she wishes. But if Bob
is an administrator of XYZ and Alice is not, there shouldn't be a way
for Alice to obstruct Bob's access to that system.

Do you agree?

--
Robert Haas
EDB: http://www.enterprisedb.com

#60Robert Haas
robertmhaas@gmail.com
In reply to: Robert Haas (#59)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Jul 26, 2021 at 4:12 PM Robert Haas <robertmhaas@gmail.com> wrote:

I think I may not have expressed myself clearly enough here. What I'm
concerned about is: Alice should not be permitted to preventing Bob
from doing something which Bob is allowed to do and Alice is not
allowed to do. If Alice is the administrator of PostgreSQL's XYZ
subsystem, she can permit Bob from using it if she wishes. But if Bob

argh, typo. I meant prevent, not permit.

is an administrator of XYZ and Alice is not, there shouldn't be a way
for Alice to obstruct Bob's access to that system.

--
Robert Haas
EDB: http://www.enterprisedb.com

#61Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephen Frost (#58)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Stephen Frost <sfrost@snowman.net> writes:

As I understood Mark's suggestion, the trigger would run but would have
the privileges of the intersection of both user's permissions, which is
an interesting idea but not one we've got any way to really do today as
each privilege check would now need to check two different roles for
privilege- and if one of the privilege checks fails, then what..?
Presumably there would be an ERROR returned, meaning that the operation
would be able to be prevented from happening by the trigger author,
which was objected to as not being acceptable either, per below.

I've not been paying close attention, so maybe this was already
considered, but ...

What if we allow event triggers owned by non-superusers, but only fire
them on commands performed by the trigger's owner? This sidesteps all
the issues of who has which privileges and whether Alice is malicious
towards Bob or vice versa, because there is no change of privilege
domain. Admittedly, it fails to cover some use-cases, but I think it
would still handle a lot of interesting cases. The impression I have
is that a lot of applications do everything under just one or a few
roles.

Possibly this could be generalized to "fire on commands performed by
any role the trigger owner is a member of", but then I'm a bit less
sure that it's safe from both roles' perspectives.

regards, tom lane

#62Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#59)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 26, 2021, at 1:12 PM, Robert Haas <robertmhaas@gmail.com> wrote:

Alice should not be permitted to preventing Bob
from doing something which Bob is allowed to do and Alice is not
allowed to do.

That sounds intuitively reasonable, though it depends on what "which Bob is allowed to do" means. For instance, if Alice is only allowed to enable or disable connections to the database, and she disables them, then she has prevented Bob from, for example, creating tables, something which Bob is otherwise allowed to do, because without the ability to connect, he cannot create tables.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#63Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#62)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Robert Haas (robertmhaas@gmail.com) wrote:

On Mon, Jul 26, 2021 at 4:12 PM Robert Haas <robertmhaas@gmail.com> wrote:

I think I may not have expressed myself clearly enough here. What I'm
concerned about is: Alice should not be permitted to preventing Bob
from doing something which Bob is allowed to do and Alice is not
allowed to do. If Alice is the administrator of PostgreSQL's XYZ
subsystem, she can permit Bob from using it if she wishes. But if Bob

argh, typo. I meant prevent, not permit.

is an administrator of XYZ and Alice is not, there shouldn't be a way
for Alice to obstruct Bob's access to that system.

Do you agree?

so ... yes and no. There's an awful lot being ascribed to
'administrator' without any definition of it being actually given. We
are working in this thread to explicitly split up superuser privileges
to allow them to be granted to non-superusers and talking about cases
where those privileges end up interacting with each other. Is Alice, as
the 'network' manager considered an 'administrator' of XYZ? Is Bob, as
the 'database' manager considered an 'administrator'? Perhaps both are,
perhaps neither are. It doesn't seem helpful to be vague.

If Alice is given the right to create event triggers in a given
database, then that's explicitly giving Alice the right to block anyone
from dropping tables in that database because that's an inherent part of
the event trigger system. Should superusers be able to bypass that?
Yes, they probably should be able to and, ideally, they'd be able to do
that just in a particular session. Should a user who has been allowed
to modify certain GUCs that perhaps Alice hasn't been allowed to modify
be able to be prevented from modifying those GUCs by Alice, when neither
is a superuser? That's definitely a trickier question and I don't know
that I've got an answer offhand.

Thanks,

Stephen

#64Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Tom Lane (#61)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On 2021-Jul-26, Tom Lane wrote:

What if we allow event triggers owned by non-superusers, but only fire
them on commands performed by the trigger's owner? This sidesteps all
the issues of who has which privileges and whether Alice is malicious
towards Bob or vice versa, because there is no change of privilege
domain. Admittedly, it fails to cover some use-cases, but I think it
would still handle a lot of interesting cases. The impression I have
is that a lot of applications do everything under just one or a few
roles.

This is similar but not quite an idea I had: have event triggers owned
by non-superusers run for all non-superusers, but not for superusers.
It is still the case that all non-superusers have to trust everyone with
the event-trigger-create permission, but that's probably the database
owner so most of the time you have to trust them already.

--
Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/
"Saca el libro que tu religión considere como el indicado para encontrar la
oración que traiga paz a tu alma. Luego rebootea el computador
y ve si funciona" (Carlos Duclós)

#65Stephen Frost
sfrost@snowman.net
In reply to: Alvaro Herrera (#64)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Alvaro Herrera (alvherre@alvh.no-ip.org) wrote:

On 2021-Jul-26, Tom Lane wrote:

What if we allow event triggers owned by non-superusers, but only fire
them on commands performed by the trigger's owner? This sidesteps all
the issues of who has which privileges and whether Alice is malicious
towards Bob or vice versa, because there is no change of privilege
domain. Admittedly, it fails to cover some use-cases, but I think it
would still handle a lot of interesting cases. The impression I have
is that a lot of applications do everything under just one or a few
roles.

This is similar but not quite an idea I had: have event triggers owned
by non-superusers run for all non-superusers, but not for superusers.
It is still the case that all non-superusers have to trust everyone with
the event-trigger-create permission, but that's probably the database
owner so most of the time you have to trust them already.

This sort of logic is what has caused issues with CREATEROLE, imv. It's
simply not so simple as "don't run this when the superuser flag is set"
because non-superuser roles can become superusers. We need something
better to have something like this actually be safe. Tom's suggestion
would work, of course, but it would mean having to create event triggers
for all the roles in the system, and would those roles who own those
event triggers be able to disable them..? If so, it would almost
certainly be against the point of an auditing event trigger..

Thanks,

Stephen

#66Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#61)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

I wrote:

Possibly this could be generalized to "fire on commands performed by
any role the trigger owner is a member of", but then I'm a bit less
sure that it's safe from both roles' perspectives.

After further thought, I can't poke a hole in that concept.
We'd keep the rule that the trigger executes as the calling user.
Therefore, the trigger cannot perform any action that the calling
user couldn't do if she chose. Conversely, since the trigger
owner could become a member of that role and then do whatever the
trigger intends to do, this scheme does not give the trigger owner
any new abilities either. All we've done is provide what some
programming languages call an observer or annotation.

I also like the fact that with this rule, superusers' ability to
create event triggers that fire for everything is not a special case.

regards, tom lane

#67Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephen Frost (#65)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Stephen Frost <sfrost@snowman.net> writes:

... Tom's suggestion
would work, of course, but it would mean having to create event triggers
for all the roles in the system, and would those roles who own those
event triggers be able to disable them..?

Uh, why not? If you own the trigger, you can drop it, so why shouldn't
you be able to temporarily disable it?

If so, it would almost
certainly be against the point of an auditing event trigger..

If you want auditing capability, you make an auditor role that is
a member of every other role, and then it owns the trigger. (If
you need to audit superuser actions too, then the auditor has to
be a superuser itself, but that's no worse than before; and I'd
argue that non-superusers shouldn't be able to audit superusers
anyway.)

regards, tom lane

#68Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Tom Lane (#67)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On 2021-Jul-26, Tom Lane wrote:

Stephen Frost <sfrost@snowman.net> writes:

... Tom's suggestion
would work, of course, but it would mean having to create event triggers
for all the roles in the system, and would those roles who own those
event triggers be able to disable them..?

Uh, why not? If you own the trigger, you can drop it, so why shouldn't
you be able to temporarily disable it?

I think an auditing system that can be turned off by the audited user is
pretty much useless. Or did I misunderstood what you are suggesting?

--
Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/
"Crear es tan difícil como ser libre" (Elsa Triolet)

#69Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#68)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

On 2021-Jul-26, Tom Lane wrote:

Uh, why not? If you own the trigger, you can drop it, so why shouldn't
you be able to temporarily disable it?

I think an auditing system that can be turned off by the audited user is
pretty much useless. Or did I misunderstood what you are suggesting?

For auditing purposes, you make a trusted role that owns the trigger,
and is a member of the roles whose actions are to be audited (but NOT
vice versa). I think that any idea that the auditing role doesn't
need to be trusted that much is foolhardy. What we can buy here is
not requiring the auditing role to be full superuser ... assuming that
you don't need auditing of superusers.

regards, tom lane

#70Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#63)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Jul 26, 2021 at 4:28 PM Stephen Frost <sfrost@snowman.net> wrote:

so ... yes and no. There's an awful lot being ascribed to
'administrator' without any definition of it being actually given. We
are working in this thread to explicitly split up superuser privileges
to allow them to be granted to non-superusers and talking about cases
where those privileges end up interacting with each other. Is Alice, as
the 'network' manager considered an 'administrator' of XYZ? Is Bob, as
the 'database' manager considered an 'administrator'? Perhaps both are,
perhaps neither are. It doesn't seem helpful to be vague.

XYZ was intended to stand in for something like 'network' or
'database' or whatever other particular part of PostgreSQL Alice might
be charged with administering.

If Alice is given the right to create event triggers in a given
database, then that's explicitly giving Alice the right to block anyone
from dropping tables in that database because that's an inherent part of
the event trigger system. Should superusers be able to bypass that?
Yes, they probably should be able to and, ideally, they'd be able to do
that just in a particular session.

I agree.

Should a user who has been allowed
to modify certain GUCs that perhaps Alice hasn't been allowed to modify
be able to be prevented from modifying those GUCs by Alice, when neither
is a superuser? That's definitely a trickier question and I don't know
that I've got an answer offhand.

My answer would be "no".

I concede Mark's point in another email that if Alice can entirely
prevent Bob from connecting to the database then by inference she can
also prevent him from exercising any other privileges he may have. I'm
prepared to say that's OK; if Alice is administering network
connections to the database and cuts everyone else off, then I guess
that's just how it is. But if Bob does somehow succeed in getting a
connection to the database, then he should be able to exercise his
right to change those GUCs which he has permission to change. Alice
shouldn't be able to thwart that.

--
Robert Haas
EDB: http://www.enterprisedb.com

#71Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#66)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Jul 26, 2021 at 4:58 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

After further thought, I can't poke a hole in that concept.
We'd keep the rule that the trigger executes as the calling user.
Therefore, the trigger cannot perform any action that the calling
user couldn't do if she chose. Conversely, since the trigger
owner could become a member of that role and then do whatever the
trigger intends to do, this scheme does not give the trigger owner
any new abilities either. All we've done is provide what some
programming languages call an observer or annotation.

I also like the fact that with this rule, superusers' ability to
create event triggers that fire for everything is not a special case.

I think this has potential. In a managed services environment, you can
imagine the provider as the super-duper user, having the ability to do
anything - because they control the box, so there's really no stopping
it - but presumably very little interest in what happens within the
database. Then you have the tenant, who is a semi-super-user,
authorized by the provider to do anything internal to the database
that the provider doesn't think will cause them problems. With the
setup you're proposing here, I suppose what the provider needs to do
is have a role like 'tenant' and make all the other tenant role
members of that master role. Then the tenant can log in as 'tenant' as
set up event triggers that will apply to all of those users, but
there's no security compromise for the provider because the role (or
roles) that they use to log in are not members of 'tenant'.

I thought for a while there might be a problem with tenant users
creating event triggers and then altering the owner to 'tenant' but I
think now that was backwards thinking. 'tenant' is a member of all of
the tenant users but not the other way around, so they can't give
their event triggers away to 'tenant'.

Do I have that right?

I agree with you that it's really nice that this eliminates the
special case for superusers.

--
Robert Haas
EDB: http://www.enterprisedb.com

#72Isaac Morland
isaac.morland@gmail.com
In reply to: Robert Haas (#71)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Tue, 27 Jul 2021 at 10:19, Robert Haas <robertmhaas@gmail.com> wrote:

I think this has potential. In a managed services environment, you can
imagine the provider as the super-duper user, having the ability to do
anything - because they control the box, so there's really no stopping
it - but presumably very little interest in what happens within the
database. Then you have the tenant, who is a semi-super-user,
authorized by the provider to do anything internal to the database
that the provider doesn't think will cause them problems. With the
setup you're proposing here, I suppose what the provider needs to do
is have a role like 'tenant' and make all the other tenant role
members of that master role. Then the tenant can log in as 'tenant' as
set up event triggers that will apply to all of those users, but
there's no security compromise for the provider because the role (or
roles) that they use to log in are not members of 'tenant'.

Isn’t this backwards? If all those roles are members of "tenant" then they
can do anything "tenant" can do. The reverse might work - make "tenant" a
member of all the related roles - although I haven’t thought through in
detail.

The comparison is to making all roles members of "postgres" (disaster) vs.
making "postgres" a member of all roles (redundant, because of how
permissions work for superuser, but harmless).

#73Robert Haas
robertmhaas@gmail.com
In reply to: Isaac Morland (#72)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Tue, Jul 27, 2021 at 10:24 AM Isaac Morland <isaac.morland@gmail.com> wrote:

Isn’t this backwards? If all those roles are members of "tenant" then they can do anything "tenant" can do. The reverse might work - make "tenant" a member of all the related roles - although I haven’t thought through in detail.

Dang it, yes. The tenant needs to be members of all the other users,
not the other way around. I spent a long time trying to not get that
backwards and still did.

--
Robert Haas
EDB: http://www.enterprisedb.com

#74Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#73)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Robert Haas <robertmhaas@gmail.com> writes:

Dang it, yes. The tenant needs to be members of all the other users,
not the other way around. I spent a long time trying to not get that
backwards and still did.

The "membership" terminology is inherently confusing I fear.
Maybe better to say that all the roles-to-be-audited must
be GRANTed to the "tenant" role?

regards, tom lane

#75Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#47)
12 attachment(s)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Jul 22, 2021, at 1:01 PM, Robert Haas <robertmhaas@gmail.com> wrote:

It's awkward. I think that we can't afford to create a separate
predefined role for every single thing that someone could
theoretically want to sever, because then we'll have a zillion of them
and it will be unmaintainable. So the idea was to try to break up
everything someone might want to do either via DDL or by setting GUCs
into one of three categories: internal to the database
(pg_database_security), facing outward toward the network
(pg_network_security), and facing inward toward the host
(pg_host_security). If we didn't have any predefined security-related
roles already, this would still have complications, but as things
stand it has more, because as you point out, pg_read_server_files
overlaps with pg_host_security. But what do we do about that?

I gave up on the idea of splitting all superuser functions into three roles.

Patch v5-0001 refactors the guc code to allow non-superuser roles to be associated with guc variables. Any such role can then set the variable, including via "alter system set". The patch stops short of creating any new roles or assigning any roles to any guc variable.

Patches v5-0002 through v5-0005 create four new roles for managing host resource settings, vacuum settings, autovacuum settings, and logging settings. That last one excludes "where to log" settings, because we don't want the role to be able to write to arbitrary locations on the server. Remaining guc variables not in these four categories continue to belong to the superuser.

Patches v5-0006 and v5-0007 allow non-superusers to own event triggers, and limit the event triggers to only running for events triggered by roles that the event trigger owner belongs to. This is backward compatible, because event triggers have historically belonged only to superusers, and superusers have implicit membership in all groups.

Patches v5-0008 through v5-0010 allow non-superusers to own subscriptions while restricting the tablesync and apply workers to only work on tables that the subscription owner has permissions on. This is almost backward compatible, because subscriptions have historically belonged only to superusers, as above, except for unlikely scenarios where superusers have given ownership to non-superusers. In those cases, the new code will refuse to apply in situations where the old code would blindly apply changes. Does anybody see a problem with this?

Patch v5-0011 is a bug fix posted elsewhere that hasn't been committed yet but which must be committed in preparation for v5-0012.

Patch v5-0012 creates a new role, pg_manage_database_objects, which can do anything with an object that the owner could do with it, as long as the owner is not a superuser. This role is intended as a "tenant" role, and is in some sense a less powerful replacement for the pg_database_security role previously proposed.

I doubt that I will create any replacement for the pg_host_security role previously proposed, as I think that role is just synonymous with "superuser", so it serves no purpose.

I am uncertain about creating a role similar to the pg_network_security role previously proposed, as the changes to how publications and subscriptions work in patches v5-0008 through v5-0010 may be enough. In any event, I'd like feedback on those patches before designing one or more additional roles for this.

Attachments:

v5-0001-Allow-SET-and-ALTER-SYSTEM-SET-per-role.patchapplication/octet-stream; name=v5-0001-Allow-SET-and-ALTER-SYSTEM-SET-per-role.patch; x-unix-mode=0644Download
From f9d01b4f2bdc7cddbfe5f57759e4ec4810d0821e Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 3 Aug 2021 09:34:19 -0700
Subject: [PATCH v5 01/12] Allow SET and ALTER SYSTEM SET per role.

Lay the groundwork for delegating to built-in roles the privilege to
perform SET and ALTER SYSTEM SET on GUC variables which otherwise
can only be changed by superuser.  Do not delegate any variables
here.  We anticipate follow-on patches to reduce the number of
operations which require superuser by creating built-in roles with
privilege to manage portions of the set of all GUC variables.
---
 contrib/auth_delay/auth_delay.c               |    1 +
 contrib/auto_explain/auto_explain.c           |   12 +
 contrib/pg_prewarm/autoprewarm.c              |    2 +
 .../pg_stat_statements/pg_stat_statements.c   |    5 +
 contrib/pg_trgm/trgm_op.c                     |    3 +
 contrib/sepgsql/hooks.c                       |    2 +
 src/backend/utils/misc/guc.c                  |  717 +++++--
 src/include/utils/guc.h                       |    9 +
 src/include/utils/guc_tables.h                |    1 +
 src/pl/plperl/plperl.c                        |    8 +-
 src/pl/plpgsql/src/pl_handler.c               |   10 +-
 src/pl/tcl/pltcl.c                            |    4 +-
 .../modules/delay_execution/delay_execution.c |    1 +
 .../ssl_passphrase_func.c                     |    1 +
 src/test/modules/worker_spi/worker_spi.c      |    3 +
 src/test/regress/expected/guc_priv_admin.out  | 1794 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/guc_priv_admin.sql       | 1422 +++++++++++++
 18 files changed, 3815 insertions(+), 182 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_admin.out
 create mode 100644 src/test/regress/sql/guc_priv_admin.sql

diff --git a/contrib/auth_delay/auth_delay.c b/contrib/auth_delay/auth_delay.c
index 5820ac328d..4b151a10ba 100644
--- a/contrib/auth_delay/auth_delay.c
+++ b/contrib/auth_delay/auth_delay.c
@@ -63,6 +63,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_SUPERUSER_ONLY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index e9092ba359..e349066375 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -100,6 +100,7 @@ _PG_init(void)
 							-1,
 							-1, INT_MAX,
 							PGC_SUSET,
+							GUC_SUPERUSER_ONLY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
@@ -111,6 +112,7 @@ _PG_init(void)
 							 &auto_explain_log_analyze,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -122,6 +124,7 @@ _PG_init(void)
 							 &auto_explain_log_settings,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -133,6 +136,7 @@ _PG_init(void)
 							 &auto_explain_log_verbose,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -144,6 +148,7 @@ _PG_init(void)
 							 &auto_explain_log_buffers,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -155,6 +160,7 @@ _PG_init(void)
 							 &auto_explain_log_wal,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -166,6 +172,7 @@ _PG_init(void)
 							 &auto_explain_log_triggers,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -178,6 +185,7 @@ _PG_init(void)
 							 EXPLAIN_FORMAT_TEXT,
 							 format_options,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -190,6 +198,7 @@ _PG_init(void)
 							 LOG,
 							 loglevel_options,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -201,6 +210,7 @@ _PG_init(void)
 							 &auto_explain_log_nested_statements,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -212,6 +222,7 @@ _PG_init(void)
 							 &auto_explain_log_timing,
 							 true,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -225,6 +236,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c
index 0289ea657c..b00fcfe7f6 100644
--- a/contrib/pg_prewarm/autoprewarm.c
+++ b/contrib/pg_prewarm/autoprewarm.c
@@ -116,6 +116,7 @@ _PG_init(void)
 							300,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_SUPERUSER_ONLY,
 							GUC_UNIT_S,
 							NULL,
 							NULL,
@@ -131,6 +132,7 @@ _PG_init(void)
 							 &autoprewarm,
 							 true,
 							 PGC_POSTMASTER,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c
index 07fe0e7cda..be32e8613b 100644
--- a/contrib/pg_stat_statements/pg_stat_statements.c
+++ b/contrib/pg_stat_statements/pg_stat_statements.c
@@ -387,6 +387,7 @@ _PG_init(void)
 							100,
 							INT_MAX,
 							PGC_POSTMASTER,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
@@ -399,6 +400,7 @@ _PG_init(void)
 							 PGSS_TRACK_TOP,
 							 track_options,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -410,6 +412,7 @@ _PG_init(void)
 							 &pgss_track_utility,
 							 true,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -421,6 +424,7 @@ _PG_init(void)
 							 &pgss_track_planning,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -432,6 +436,7 @@ _PG_init(void)
 							 &pgss_save,
 							 true,
 							 PGC_SIGHUP,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_trgm/trgm_op.c b/contrib/pg_trgm/trgm_op.c
index fb38135f7a..c24d8243c1 100644
--- a/contrib/pg_trgm/trgm_op.c
+++ b/contrib/pg_trgm/trgm_op.c
@@ -72,6 +72,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -84,6 +85,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -96,6 +98,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/sepgsql/hooks.c b/contrib/sepgsql/hooks.c
index 19a3ffb7ff..df7984de9c 100644
--- a/contrib/sepgsql/hooks.c
+++ b/contrib/sepgsql/hooks.c
@@ -432,6 +432,7 @@ _PG_init(void)
 							 &sepgsql_permissive,
 							 false,
 							 PGC_SIGHUP,
+							 GUC_SUPERUSER_ONLY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
@@ -450,6 +451,7 @@ _PG_init(void)
 							 &sepgsql_debug_audit,
 							 false,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index a2e0f8de7e..c20a7a7d76 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -972,6 +972,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of sequential-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_seqscan,
@@ -982,6 +983,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_indexscan,
@@ -992,6 +994,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-only-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_indexonlyscan,
@@ -1002,6 +1005,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of bitmap-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_bitmapscan,
@@ -1012,6 +1016,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of TID scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_tidscan,
@@ -1022,6 +1027,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of explicit sort steps."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_sort,
@@ -1031,7 +1037,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of incremental sort steps."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&enable_incremental_sort,
 		true,
@@ -1041,6 +1048,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hashed aggregation plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_hashagg,
@@ -1051,6 +1059,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of materialization."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_material,
@@ -1061,6 +1070,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_memoize", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of memoization."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_memoize,
@@ -1071,6 +1081,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of nested-loop join plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_nestloop,
@@ -1081,6 +1092,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of merge join plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_mergejoin,
@@ -1091,6 +1103,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hash join plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_hashjoin,
@@ -1101,6 +1114,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of gather merge plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_gathermerge,
@@ -1111,6 +1125,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise join."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_join,
@@ -1121,6 +1136,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise aggregation and grouping."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_aggregate,
@@ -1131,6 +1147,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel append plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_append,
@@ -1141,6 +1158,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel hash plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_hash,
@@ -1153,6 +1171,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Allows the query planner and executor to compare partition "
 						 "bounds to conditions in the query to determine which "
 						 "partitions must be scanned."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_partition_pruning,
@@ -1163,6 +1182,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of async append plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_async_append,
@@ -1174,6 +1194,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables genetic query optimization."),
 			gettext_noop("This algorithm attempts to do planning without "
 						 "exhaustive searching."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_geqo,
@@ -1185,6 +1206,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"is_superuser", PGC_INTERNAL, UNGROUPED,
 			gettext_noop("Shows whether the current user is a superuser."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&session_auth_is_superuser,
@@ -1194,7 +1216,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Enables advertising the server via Bonjour."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&enable_bonjour,
 		false,
@@ -1203,7 +1226,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Collects transaction commit time."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&track_commit_timestamp,
 		false,
@@ -1212,7 +1236,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Enables SSL connections."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&EnableSSL,
 		false,
@@ -1221,7 +1246,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Also use ssl_passphrase_command during server reload."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_passphrase_command_supports_reload,
 		false,
@@ -1230,7 +1256,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Give priority to server ciphersuite order."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&SSLPreferServerCiphers,
 		true,
@@ -1242,7 +1269,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("The server will use the fsync() system call in several places to make "
 						 "sure that updates are physically written to disk. This insures "
 						 "that a database cluster will recover to a consistent state after "
-						 "an operating system or hardware crash.")
+						 "an operating system or hardware crash."),
+			GUC_SUPERUSER_ONLY
 		},
 		&enableFsync,
 		true,
@@ -1257,6 +1285,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(but still report a warning), and continue processing. This "
 						 "behavior could cause crashes or other serious problems. Only "
 						 "has an effect if checksums are enabled."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_checksum_failure,
@@ -1271,6 +1300,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "zero_damaged_pages to true causes the system to instead report a "
 						 "warning, zero out the damaged page, and continue processing. This "
 						 "behavior will destroy data, namely all the rows on the damaged page."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&zero_damaged_pages,
@@ -1290,6 +1320,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "crashes, data loss, propagate or hide corruption, "
 						 "or other serious problems. Only has an effect "
 						 "during recovery or in standby mode."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_invalid_pages,
@@ -1303,7 +1334,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "only partially written to disk.  During recovery, the row changes "
 						 "stored in WAL are not enough to recover.  This option writes "
 						 "pages when first modified after a checkpoint to WAL so full recovery "
-						 "is possible.")
+						 "is possible."),
+			GUC_SUPERUSER_ONLY
 		},
 		&fullPageWrites,
 		true,
@@ -1313,7 +1345,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_log_hints,
 		false,
@@ -1323,7 +1356,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Writes zeroes to new WAL files before first use."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_init_zero,
 		true,
@@ -1333,7 +1367,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_recycle", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Recycles WAL files by renaming them."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_recycle,
 		true,
@@ -1343,7 +1378,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs each checkpoint."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_checkpoints,
 		false,
@@ -1352,7 +1388,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs each successful connection."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_connections,
 		false,
@@ -1361,7 +1398,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs end of a session, including duration."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_disconnections,
 		false,
@@ -1370,7 +1408,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs each replication command."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_replication_commands,
 		false,
@@ -1380,6 +1419,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether the running server has assertion checks enabled."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&assert_enabled,
@@ -1394,7 +1434,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Terminate session on any error."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ExitOnAnyError,
 		false,
@@ -1403,7 +1444,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Reinitialize server after backend crash."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&restart_after_crash,
 		true,
@@ -1413,6 +1455,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"remove_temp_files_after_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Remove temporary files after backend crash."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&remove_temp_files_after_crash,
@@ -1423,7 +1466,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_duration", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs the duration of each completed SQL statement."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_duration,
 		false,
@@ -1432,7 +1476,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's parse tree."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_print_parse,
 		false,
@@ -1441,7 +1486,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's rewritten parse tree."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_print_rewritten,
 		false,
@@ -1450,7 +1496,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's execution plan."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_print_plan,
 		false,
@@ -1459,7 +1506,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Indents parse and plan tree displays."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_pretty_print,
 		true,
@@ -1468,7 +1516,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_parser_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes parser performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_parser_stats,
 		false,
@@ -1477,7 +1526,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_planner_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes planner performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_planner_stats,
 		false,
@@ -1486,7 +1536,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_executor_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes executor performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_executor_stats,
 		false,
@@ -1495,7 +1546,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_statement_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes cumulative performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_statement_stats,
 		false,
@@ -1506,6 +1558,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&log_btree_build_stats,
@@ -1519,7 +1572,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Collects information about executing commands."),
 			gettext_noop("Enables the collection of information on the currently "
 						 "executing command of each session, along with "
-						 "the time at which that command began execution.")
+						 "the time at which that command began execution."),
+			GUC_SUPERUSER_ONLY
 		},
 		&pgstat_track_activities,
 		true,
@@ -1528,7 +1582,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_counts", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects statistics on database activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&pgstat_track_counts,
 		true,
@@ -1537,7 +1592,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for database I/O activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&track_io_timing,
 		false,
@@ -1546,7 +1602,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_wal_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for WAL I/O activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&track_wal_io_timing,
 		false,
@@ -1556,7 +1613,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"update_process_title", PGC_SUSET, PROCESS_TITLE,
 			gettext_noop("Updates the process title to show the active SQL command."),
-			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
+			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server."),
+			GUC_SUPERUSER_ONLY
 		},
 		&update_process_title,
 #ifdef WIN32
@@ -1570,7 +1628,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"autovacuum", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Starts the autovacuum subprocess."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_start_daemon,
 		true,
@@ -1581,6 +1640,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_notify,
@@ -1593,6 +1653,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lock usage."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_locks,
@@ -1603,6 +1664,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about user lock usage."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_userlocks,
@@ -1613,6 +1675,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lightweight lock usage."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lwlocks,
@@ -1623,6 +1686,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Debug_deadlocks,
@@ -1634,7 +1698,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs long lock waits."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_lock_waits,
 		false,
@@ -1643,7 +1708,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs standby recovery conflict waits."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_recovery_conflict_waits,
 		false,
@@ -1655,7 +1721,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("By default, connection logs only show the IP address "
 						 "of the connecting host. If you want them to show the host name you "
 						 "can turn this on, but depending on your host name resolution "
-						 "setup it might impose a non-negligible performance penalty.")
+						 "setup it might impose a non-negligible performance penalty."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_hostname,
 		false,
@@ -1668,7 +1735,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(or NULL = expr) are treated as expr IS NULL, that is, they "
 						 "return true if expr evaluates to the null value, and false "
 						 "otherwise. The correct behavior of expr = NULL is to always "
-						 "return null (unknown).")
+						 "return null (unknown)."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Transform_null_equals,
 		false,
@@ -1677,7 +1745,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"db_user_namespace", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Enables per-database user names."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Db_user_namespace,
 		false,
@@ -1687,6 +1756,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default read-only status of new transactions."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&DefaultXactReadOnly,
@@ -1697,6 +1767,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's read-only status."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactReadOnly,
@@ -1706,7 +1777,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default deferrable status of new transactions."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&DefaultXactDeferrable,
 		false,
@@ -1716,6 +1788,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactDeferrable,
@@ -1725,7 +1798,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Enable row security."),
-			gettext_noop("When enabled, row security will be applied to all users.")
+			gettext_noop("When enabled, row security will be applied to all users."),
+			GUC_SUPERUSER_ONLY
 		},
 		&row_security,
 		true,
@@ -1734,7 +1808,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&check_function_bodies,
 		true,
@@ -1745,7 +1820,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enable input of NULL elements in arrays."),
 			gettext_noop("When turned on, unquoted NULL in an array input "
 						 "value means a null value; "
-						 "otherwise it is taken literally.")
+						 "otherwise it is taken literally."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Array_nulls,
 		true,
@@ -1761,6 +1837,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("WITH OIDS is no longer supported; this can only be false."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
 		},
 		&default_with_oids,
@@ -1770,7 +1847,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Logging_collector,
 		false,
@@ -1779,7 +1857,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Truncate existing log files of same name during log rotation."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_truncate_on_rotation,
 		false,
@@ -1791,6 +1870,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit information about resource usage in sorting."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_sort,
@@ -1805,6 +1885,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generate debugging output for synchronized scanning."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_syncscan,
@@ -1820,6 +1901,7 @@ static struct config_bool ConfigureNamesBool[] =
 			"optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enable bounded sorting using heap sort."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&optimize_bounded_sort,
@@ -1833,6 +1915,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit WAL-related debugging output."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&XLOG_DEBUG,
@@ -1845,6 +1928,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether datetimes are integer based."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&integer_datetimes,
@@ -1855,7 +1939,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&pg_krb_caseins_users,
 		false,
@@ -1865,7 +1950,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Warn about backslash escapes in ordinary string literals."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&escape_string_warning,
 		true,
@@ -1876,6 +1962,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Causes '...' strings to treat backslashes literally."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&standard_conforming_strings,
@@ -1886,7 +1973,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enable synchronized sequential scans."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&synchronize_seqscans,
 		true,
@@ -1896,7 +1984,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets whether to include or exclude transaction with recovery target."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryTargetInclusive,
 		true,
@@ -1906,7 +1995,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
 			gettext_noop("Allows connections and queries during recovery."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&EnableHotStandby,
 		true,
@@ -1916,7 +2006,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&hot_standby_feedback,
 		false,
@@ -1927,6 +2018,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether hot standby is currently active."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&in_hot_standby,
@@ -1938,6 +2030,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allows modifications of the structure of system tables."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&allowSystemTableMods,
@@ -1950,6 +2043,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Disables reading from system indexes."),
 			gettext_noop("It does not prevent updating the indexes, so it is safe "
 						 "to use.  The worst consequence is slowness."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&IgnoreSystemIndexes,
@@ -1961,7 +2055,8 @@ static struct config_bool ConfigureNamesBool[] =
 		{"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
 			gettext_noop("Skips privilege checks when reading or modifying large objects, "
-						 "for compatibility with PostgreSQL releases prior to 9.0.")
+						 "for compatibility with PostgreSQL releases prior to 9.0."),
+			GUC_SUPERUSER_ONLY
 		},
 		&lo_compat_privileges,
 		false,
@@ -1972,6 +2067,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("When generating SQL fragments, quote all identifiers."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 		},
 		&quote_all_identifiers,
 		false,
@@ -1982,6 +2078,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether data checksums are turned on for this cluster."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_checksums,
@@ -1992,7 +2089,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_sequence_numbers,
 		true,
@@ -2002,7 +2100,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_split_messages,
 		true,
@@ -2013,6 +2112,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"parallel_leader_participation", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
 			gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&parallel_leader_participation,
@@ -2024,6 +2124,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Allow JIT compilation."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_enabled,
@@ -2035,6 +2136,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with debugger."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_debugging_support,
@@ -2052,6 +2154,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_dump_bitcode,
@@ -2063,6 +2166,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of expressions."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_expressions,
@@ -2074,6 +2178,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with perf profiler."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_profiling_support,
@@ -2091,6 +2196,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of tuple deforming."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_tuple_deforming,
@@ -2101,6 +2207,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Whether to continue running after a failure to sync data files."),
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&data_sync_retry,
 		false,
@@ -2110,6 +2218,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_receiver_create_temp_slot,
 		false,
@@ -2130,6 +2240,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Forces a switch to the next WAL file if a "
 						 "new file has not been started within N seconds."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&XLogArchiveTimeout,
@@ -2140,6 +2251,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup after authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PostAuthDelay,
@@ -2150,7 +2262,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Sets the default statistics target."),
 			gettext_noop("This applies to table columns that have not had a "
-						 "column-specific target set via ALTER TABLE SET STATISTICS.")
+						 "column-specific target set via ALTER TABLE SET STATISTICS."),
+			GUC_SUPERUSER_ONLY
 		},
 		&default_statistics_target,
 		100, 1, 10000,
@@ -2163,6 +2276,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will merge subqueries into upper "
 						 "queries if the resulting FROM list would have no more than "
 						 "this many items."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&from_collapse_limit,
@@ -2176,6 +2290,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will flatten explicit JOIN "
 						 "constructs into lists of FROM items whenever a "
 						 "list of no more than this many items would result."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&join_collapse_limit,
@@ -2186,6 +2301,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&geqo_threshold,
@@ -2196,6 +2312,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_effort,
@@ -2206,6 +2323,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of individuals in the population."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_pool_size,
@@ -2216,6 +2334,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of iterations of the algorithm."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_generations,
@@ -2228,6 +2347,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
 			gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&DeadlockTimeout,
@@ -2239,6 +2359,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&max_standby_archive_delay,
@@ -2250,6 +2371,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&max_standby_streaming_delay,
@@ -2261,6 +2383,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the minimum delay for applying changes during recovery."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&recovery_min_apply_delay,
@@ -2272,6 +2395,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&wal_receiver_status_interval,
@@ -2283,6 +2407,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum wait time to receive data from the sending server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&wal_receiver_timeout,
@@ -2293,7 +2418,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the maximum number of concurrent connections."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&MaxConnections,
 		100, 1, MAX_BACKENDS,
@@ -2304,7 +2430,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the number of connection slots reserved for superusers."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ReservedBackends,
 		3, 0, MAX_BACKENDS,
@@ -2315,6 +2442,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Amount of dynamic shared memory reserved at startup."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&min_dynamic_shared_memory,
@@ -2330,6 +2458,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the number of shared memory buffers used by the server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&NBuffers,
@@ -2341,6 +2470,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_buffers", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of temporary buffers used by each session."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN
 		},
 		&num_temp_buffers,
@@ -2351,7 +2481,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"port", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the TCP port the server listens on."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&PostPortNumber,
 		DEF_PGPORT, 1, 65535,
@@ -2366,7 +2497,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_permissions,
 		0777, 0000, 0777,
@@ -2380,7 +2512,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_file_mode,
 		0600, 0000, 0777,
@@ -2395,6 +2528,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "in the form accepted by the chmod and umask system "
 						 "calls. (To use the customary octal format the number "
 						 "must start with a 0 (zero).)"),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_directory_mode,
@@ -2408,6 +2542,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This much memory can be used by each internal "
 						 "sort operation and hash table before switching to "
 						 "temporary disk files."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB | GUC_EXPLAIN
 		},
 		&work_mem,
@@ -2419,6 +2554,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used for maintenance operations."),
 			gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
@@ -2431,6 +2567,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum memory to be used for logical decoding."),
 			gettext_noop("This much memory can be used by each internal "
 						 "reorder buffer before spilling to disk."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&logical_decoding_work_mem,
@@ -2447,6 +2584,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum stack depth, in kilobytes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&max_stack_depth,
@@ -2458,6 +2596,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
 			gettext_noop("Limits the total size of all temporary files used by each process."),
 			gettext_noop("-1 means no limit."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&temp_file_limit,
@@ -2468,7 +2607,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostPageHit,
 		1, 0, 10000,
@@ -2478,7 +2618,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostPageMiss,
 		2, 0, 10000,
@@ -2488,7 +2629,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostPageDirty,
 		20, 0, 10000,
@@ -2498,7 +2640,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost amount available before napping."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostLimit,
 		200, 1, 10000,
@@ -2508,7 +2651,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_cost_limit,
 		-1, -1, 10000,
@@ -2518,7 +2662,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
 			gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_files_per_process,
 		1000, 64, INT_MAX,
@@ -2531,7 +2676,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_prepared_xacts,
 		0, 0, MAX_BACKENDS,
@@ -2543,6 +2689,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the minimum OID of tables for tracking locks."),
 			gettext_noop("Is used to avoid output on system tables."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_oidmin,
@@ -2553,6 +2700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_table,
@@ -2565,6 +2713,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any statement."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&StatementTimeout,
@@ -2576,6 +2725,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&LockTimeout,
@@ -2587,6 +2737,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&IdleInTransactionSessionTimeout,
@@ -2598,6 +2749,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&IdleSessionTimeout,
@@ -2608,7 +2760,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a table row."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_freeze_min_age,
 		50000000, 0, 1000000000,
@@ -2618,7 +2771,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2628,7 +2782,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_multixact_freeze_min_age,
 		5000000, 0, 1000000000,
@@ -2638,7 +2793,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_multixact_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2648,7 +2804,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_defer_cleanup_age", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_defer_cleanup_age,
 		0, 0, 1000000,			/* see ComputeXidHorizons */
@@ -2657,7 +2814,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2666,7 +2824,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_multixact_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2681,7 +2840,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of locks per transaction."),
 			gettext_noop("The shared lock table is sized on the assumption that "
 						 "at most max_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2693,7 +2853,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of predicate locks per transaction."),
 			gettext_noop("The shared predicate lock table is sized on the assumption that "
 						 "at most max_pred_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_predicate_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2704,7 +2865,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
 			gettext_noop("If more than this total of pages and tuples in the same relation are locked "
-						 "by a connection, those locks are replaced by a relation-level lock.")
+						 "by a connection, those locks are replaced by a relation-level lock."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_predicate_locks_per_relation,
 		-2, INT_MIN, INT_MAX,
@@ -2715,7 +2877,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
 			gettext_noop("If more than this number of tuples on the same page are locked "
-						 "by a connection, those locks are replaced by a page-level lock.")
+						 "by a connection, those locks are replaced by a page-level lock."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_predicate_locks_per_page,
 		2, 0, INT_MAX,
@@ -2726,6 +2889,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the maximum allowed time to complete client authentication."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&AuthenticationTimeout,
@@ -2738,6 +2902,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup before authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PreAuthDelay,
@@ -2749,6 +2914,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
 			gettext_noop("Sets the size of WAL files held for standby servers."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&wal_keep_size_mb,
@@ -2760,6 +2926,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the minimum size to shrink the WAL to."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&min_wal_size_mb,
@@ -2772,6 +2939,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the WAL size that triggers a checkpoint."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&max_wal_size_mb,
@@ -2784,6 +2952,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&CheckPointTimeout,
@@ -2798,6 +2967,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Write a message to the server log if checkpoints "
 						 "caused by the filling of checkpoint segment files happens more "
 						 "frequently than this number of seconds. Zero turns off the warning."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&CheckPointWarning,
@@ -2809,6 +2979,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&checkpoint_flush_after,
@@ -2820,6 +2991,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_XBLOCKS
 		},
 		&XLOGbuffers,
@@ -2831,6 +3003,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Time between WAL flushes performed in the WAL writer."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&WalWriterDelay,
@@ -2842,6 +3015,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_XBLOCKS
 		},
 		&WalWriterFlushAfter,
@@ -2853,6 +3027,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&wal_skip_threshold,
@@ -2863,7 +3038,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_wal_senders,
 		10, 0, MAX_BACKENDS,
@@ -2874,7 +3050,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_wal_senders */
 		{"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_replication_slots,
 		10, 0, MAX_BACKENDS /* XXX? */ ,
@@ -2887,6 +3064,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Replication slots will be marked as failed, and segments released "
 						 "for deletion or recycling, if this much space is occupied by WAL "
 						 "on disk."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&max_slot_wal_keep_size_mb,
@@ -2898,6 +3076,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum time to wait for WAL replication."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&wal_sender_timeout,
@@ -2909,7 +3088,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_delay", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Sets the delay in microseconds between transaction commit and "
 						 "flushing WAL to disk."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 			/* we have no microseconds designation, so can't supply units here */
 		},
 		&CommitDelay,
@@ -2921,7 +3101,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_siblings", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the minimum concurrent open transactions before performing "
 						 "commit_delay."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&CommitSiblings,
 		5, 0, 1000,
@@ -2934,7 +3115,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This affects real, double precision, and geometric data types. "
 						 "A zero or negative parameter value is added to the standard "
 						 "number of digits (FLT_DIG or DBL_DIG as appropriate). "
-						 "Any value greater than zero selects precise output mode.")
+						 "Any value greater than zero selects precise output mode."),
+			GUC_SUPERUSER_ONLY
 		},
 		&extra_float_digits,
 		1, -15, 3,
@@ -2947,6 +3129,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "a sample of statements will be logged."
 						 " Sampling is determined by log_statement_sample_rate."),
 			gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_sample,
@@ -2959,6 +3142,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "all statements will be logged."),
 			gettext_noop("Zero prints all queries. -1 turns this feature off."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_statement,
@@ -2971,6 +3155,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "autovacuum actions will be logged."),
 			gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&Log_autovacuum_min_duration,
@@ -2982,6 +3167,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("When logging statements, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length,
@@ -2993,6 +3179,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("When reporting an error, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length_on_error,
@@ -3004,6 +3191,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer sleep time between rounds."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&BgWriterDelay,
@@ -3014,7 +3202,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer maximum number of LRU pages to flush per round."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bgwriter_lru_maxpages,
 		100, 0, INT_MAX / 2,	/* Same upper limit as shared_buffers */
@@ -3025,6 +3214,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&bgwriter_flush_after,
@@ -3038,6 +3228,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&effective_io_concurrency,
@@ -3056,6 +3247,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("A variant of effective_io_concurrency that is used for maintenance work."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&maintenance_io_concurrency,
@@ -3072,6 +3264,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&backend_flush_after,
@@ -3085,6 +3278,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Maximum number of concurrent worker processes."),
 			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_worker_processes,
 		8, 0, MAX_BACKENDS,
@@ -3097,6 +3291,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of logical replication worker processes."),
 			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_logical_replication_workers,
 		4, 0, MAX_BACKENDS,
@@ -3109,6 +3304,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of table synchronization workers per subscription."),
 			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_sync_workers_per_subscription,
 		2, 0, MAX_BACKENDS,
@@ -3119,6 +3315,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N minutes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MIN
 		},
 		&Log_RotationAge,
@@ -3130,6 +3327,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N kilobytes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&Log_RotationSize,
@@ -3141,6 +3339,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of function arguments."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_function_args,
@@ -3152,6 +3351,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of index keys."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_index_keys,
@@ -3163,6 +3363,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum identifier length."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_identifier_length,
@@ -3174,6 +3375,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of a disk block."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&block_size,
@@ -3185,6 +3387,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the number of pages per disk file."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&segment_size,
@@ -3196,6 +3399,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the block size in the write ahead log."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_block_size,
@@ -3208,6 +3412,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the time to wait before retrying to retrieve WAL "
 						 "after a failed attempt."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&wal_retrieve_retry_interval,
@@ -3219,6 +3424,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of write ahead log segments."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_segment_size,
@@ -3232,6 +3438,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Time to sleep between autovacuum runs."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&autovacuum_naptime,
@@ -3241,7 +3448,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_thresh,
 		50, 0, INT_MAX,
@@ -3250,7 +3458,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_ins_thresh,
 		1000, -1, INT_MAX,
@@ -3259,7 +3468,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_anl_thresh,
 		50, 0, INT_MAX,
@@ -3269,7 +3479,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_freeze_max_age,
 
@@ -3284,7 +3495,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_multixact_freeze_max_age,
 		400000000, 10000, 2000000000,
@@ -3294,7 +3506,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_max_workers,
 		3, 1, MAX_BACKENDS,
@@ -3304,7 +3517,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_parallel_maintenance_workers,
 		2, 0, 1024,
@@ -3315,6 +3529,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per executor node."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers_per_gather,
@@ -3326,6 +3541,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers,
@@ -3337,6 +3553,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&autovacuum_work_mem,
@@ -3348,6 +3565,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"old_snapshot_threshold", PGC_POSTMASTER, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Time before a snapshot is too old to read pages changed after the snapshot was taken."),
 			gettext_noop("A value of -1 disables this feature."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MIN
 		},
 		&old_snapshot_threshold,
@@ -3359,6 +3577,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between issuing TCP keepalives."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_idle,
@@ -3370,6 +3589,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between TCP keepalive retransmits."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_interval,
@@ -3381,6 +3601,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"ssl_renegotiation_limit", PGC_USERSET, CONN_AUTH_SSL,
 			gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE,
 		},
 		&ssl_renegotiation_limit,
@@ -3394,6 +3615,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This controls the number of consecutive keepalive retransmits that can be "
 						 "lost before a connection is considered dead. A value of 0 uses the "
 						 "system default."),
+			GUC_SUPERUSER_ONLY
 		},
 		&tcp_keepalives_count,
 		0, 0, INT_MAX,
@@ -3404,6 +3626,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
 			gettext_noop("Sets the maximum allowed result for exact search by GIN."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			0
 		},
 		&GinFuzzySearchLimit,
@@ -3416,6 +3639,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the planner's assumption about the total size of the data caches."),
 			gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
 						 "This is measured in disk pages, which are normally 8 kB each."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&effective_cache_size,
@@ -3427,6 +3651,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of table data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_table_scan_size,
@@ -3438,6 +3663,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of index data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_index_scan_size,
@@ -3450,6 +3676,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version as an integer."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_num,
@@ -3461,6 +3688,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_temp_files", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
 			gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&log_temp_files,
@@ -3472,6 +3700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"track_activity_query_size", PGC_POSTMASTER, STATS_COLLECTOR,
 			gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE
 		},
 		&pgstat_track_activity_query_size,
@@ -3483,6 +3712,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum size of the pending list for GIN index."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&gin_pending_list_limit,
@@ -3494,6 +3724,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_user_timeout", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("TCP user timeout."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&tcp_user_timeout,
@@ -3505,6 +3736,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("The size of huge page that should be requested."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&huge_page_size,
@@ -3516,6 +3748,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"debug_discard_caches", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Aggressively flush system caches for debugging purposes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&debug_discard_caches,
@@ -3539,6 +3772,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"client_connection_check_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the time interval between checks for disconnection while running queries."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&client_connection_check_interval,
@@ -3560,6 +3794,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "sequentially fetched disk page."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&seq_page_cost,
@@ -3571,6 +3806,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "nonsequentially fetched disk page."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&random_page_cost,
@@ -3582,6 +3818,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each tuple (row)."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cpu_tuple_cost,
@@ -3593,6 +3830,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each index entry during an index scan."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cpu_index_tuple_cost,
@@ -3604,6 +3842,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each operator or function call."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cpu_operator_cost,
@@ -3615,6 +3854,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "passing each tuple (row) from worker to leader backend."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&parallel_tuple_cost,
@@ -3626,6 +3866,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "starting up worker processes for parallel query."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&parallel_setup_cost,
@@ -3637,6 +3878,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT compilation if query is more expensive."),
 			gettext_noop("-1 disables JIT compilation."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_above_cost,
@@ -3648,6 +3890,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
 			gettext_noop("-1 disables optimization."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_optimize_above_cost,
@@ -3659,6 +3902,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT inlining if query is more expensive."),
 			gettext_noop("-1 disables inlining."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_inline_above_cost,
@@ -3671,6 +3915,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the fraction of "
 						 "a cursor's rows that will be retrieved."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cursor_tuple_fraction,
@@ -3682,6 +3927,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: selective pressure within the population."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_selection_bias,
@@ -3693,6 +3939,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: seed for random path selection."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_seed,
@@ -3704,6 +3951,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Multiple of work_mem to use for hash tables."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&hash_mem_multiplier,
@@ -3714,7 +3962,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Multiple of the average buffer usage to free per round."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bgwriter_lru_multiplier,
 		2.0, 0.0, 10.0,
@@ -3725,6 +3974,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"seed", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the seed for random-number generation."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&phony_random_seed,
@@ -3736,6 +3986,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost delay in milliseconds."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&VacuumCostDelay,
@@ -3747,6 +3998,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&autovacuum_vac_cost_delay,
@@ -3757,7 +4009,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_scale,
 		0.2, 0.0, 100.0,
@@ -3767,7 +4020,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_ins_scale,
 		0.2, 0.0, 100.0,
@@ -3777,7 +4031,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_anl_scale,
 		0.1, 0.0, 100.0,
@@ -3787,7 +4042,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&CheckPointCompletionTarget,
 		0.9, 0.0, 1.0,
@@ -3797,7 +4053,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
-			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
+			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log)."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_statement_sample_rate,
 		1.0, 0.0, 1.0,
@@ -3808,7 +4065,8 @@ static struct config_real ConfigureNamesReal[] =
 		{"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the fraction of transactions from which to log all statements."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
-						 "statements for all transactions).")
+						 "statements for all transactions)."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_xact_sample_rate,
 		0.0, 0.0, 1.0,
@@ -3827,7 +4085,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
 			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&XLogArchiveCommand,
 		"",
@@ -3837,7 +4096,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryRestoreCommand,
 		"",
@@ -3847,7 +4107,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed at every restart point."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&archiveCleanupCommand,
 		"",
@@ -3857,7 +4118,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryEndCommand,
 		"",
@@ -3867,7 +4129,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Specifies the timeline to recover into."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_timeline_string,
 		"latest",
@@ -3877,7 +4140,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_string,
 		"",
@@ -3886,7 +4150,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the transaction ID up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_xid_string,
 		"",
@@ -3895,7 +4160,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the time stamp up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_time_string,
 		"",
@@ -3904,7 +4170,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the named restore point up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_name_string,
 		"",
@@ -3913,7 +4180,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_lsn_string,
 		"",
@@ -3923,7 +4191,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"promote_trigger_file", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Specifies a file name whose presence ends recovery in the standby."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&PromoteTriggerFile,
 		"",
@@ -3944,7 +4213,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the name of the replication slot to use on the sending server."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&PrimarySlotName,
 		"",
@@ -3955,6 +4225,7 @@ static struct config_string ConfigureNamesString[] =
 		{"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the client's character set encoding."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT
 		},
 		&client_encoding_string,
@@ -3965,7 +4236,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Controls information prefixed to each log line."),
-			gettext_noop("If blank, no prefix is used.")
+			gettext_noop("If blank, no prefix is used."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_line_prefix,
 		"%m [%p] ",
@@ -3975,7 +4247,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Sets the time zone to use in log messages."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_timezone_string,
 		"GMT",
@@ -3987,6 +4260,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the display format for date and time values."),
 			gettext_noop("Also controls interpretation of ambiguous "
 						 "date inputs."),
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_REPORT
 		},
 		&datestyle_string,
@@ -3998,6 +4272,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default table access method for new tables."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME
 		},
 		&default_table_access_method,
@@ -4009,6 +4284,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default tablespace to create tables and indexes in."),
 			gettext_noop("An empty string selects the database's default tablespace."),
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME
 		},
 		&default_tablespace,
@@ -4020,6 +4296,7 @@ static struct config_string ConfigureNamesString[] =
 		{"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&temp_tablespaces,
@@ -4055,7 +4332,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the Bonjour service name."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bonjour_name,
 		"",
@@ -4068,6 +4346,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_collate", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the collation order locale."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_collate,
@@ -4079,6 +4358,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_ctype", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the character classification and case conversion locale."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_ctype,
@@ -4089,7 +4369,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the language in which messages are displayed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_messages,
 		"",
@@ -4099,7 +4380,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting monetary amounts."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_monetary,
 		"C",
@@ -4109,7 +4391,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting numbers."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_numeric,
 		"C",
@@ -4119,7 +4402,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting date and time values."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_time,
 		"C",
@@ -4130,6 +4414,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into each backend."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&session_preload_libraries_string,
@@ -4141,6 +4426,7 @@ static struct config_string ConfigureNamesString[] =
 		{"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&shared_preload_libraries_string,
@@ -4152,6 +4438,7 @@ static struct config_string ConfigureNamesString[] =
 		{"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&local_preload_libraries_string,
@@ -4163,6 +4450,7 @@ static struct config_string ConfigureNamesString[] =
 		{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the schema search order for names that are not schema-qualified."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_EXPLAIN
 		},
 		&namespace_search_path,
@@ -4175,6 +4463,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server (database) character set encoding."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_encoding_string,
@@ -4187,6 +4476,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_version", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_string,
@@ -4199,6 +4489,7 @@ static struct config_string ConfigureNamesString[] =
 		{"role", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the current role."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&role_string,
@@ -4211,6 +4502,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_authorization", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the session user name."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&session_authorization_string,
@@ -4224,6 +4516,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Valid values are combinations of \"stderr\", "
 						 "\"syslog\", \"csvlog\", and \"eventlog\", "
 						 "depending on the platform."),
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT
 		},
 		&Log_destination_string,
@@ -4235,6 +4528,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the destination directory for log files."),
 			gettext_noop("Can be specified as relative to the data directory "
 						 "or as absolute path."),
+			GUC_SUPERUSER_ONLY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_directory,
@@ -4245,6 +4539,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_filename", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the file name pattern for log files."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_filename,
@@ -4256,7 +4551,8 @@ static struct config_string ConfigureNamesString[] =
 		{"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the program name used to identify PostgreSQL "
 						 "messages in syslog."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_ident_str,
 		"postgres",
@@ -4267,7 +4563,8 @@ static struct config_string ConfigureNamesString[] =
 		{"event_source", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Sets the application name used to identify "
 						 "PostgreSQL messages in the event log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&event_source,
 		DEFAULT_EVENT_SOURCE,
@@ -4278,6 +4575,7 @@ static struct config_string ConfigureNamesString[] =
 		{"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&timezone_string,
@@ -4287,7 +4585,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Selects a file of time zone abbreviations."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&timezone_abbreviations_string,
 		NULL,
@@ -4298,7 +4597,8 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the owning group of the Unix-domain socket."),
 			gettext_noop("The owning user of the socket is always the user "
-						 "that starts the server.")
+						 "that starts the server."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_group,
 		"",
@@ -4309,6 +4609,7 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the directories where Unix-domain sockets will be created."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_directories,
@@ -4324,6 +4625,7 @@ static struct config_string ConfigureNamesString[] =
 		{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the host name or IP address(es) to listen to."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT
 		},
 		&ListenAddresses,
@@ -4339,6 +4641,7 @@ static struct config_string ConfigureNamesString[] =
 		{"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's data directory."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_SUPERUSER_ONLY | GUC_DISALLOW_IN_AUTO_FILE
 		},
 		&data_directory,
@@ -4350,6 +4653,7 @@ static struct config_string ConfigureNamesString[] =
 		{"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's main configuration file."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_DISALLOW_IN_FILE | GUC_SUPERUSER_ONLY
 		},
 		&ConfigFileName,
@@ -4394,6 +4698,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the name of the SSL library."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&ssl_library,
@@ -4408,7 +4713,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server certificate file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_cert_file,
 		"server.crt",
@@ -4418,7 +4724,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server private key file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_key_file,
 		"server.key",
@@ -4428,7 +4735,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate authority file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_ca_file,
 		"",
@@ -4438,7 +4746,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_crl_file,
 		"",
@@ -4448,7 +4757,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list directory."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_crl_dir,
 		"",
@@ -4470,6 +4780,7 @@ static struct config_string ConfigureNamesString[] =
 		{"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT
 		},
 		&SyncRepStandbyNames,
@@ -4480,7 +4791,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets default text search configuration."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&TSCurrentConfig,
 		"pg_catalog.simple",
@@ -4543,6 +4855,7 @@ static struct config_string ConfigureNamesString[] =
 		{"application_name", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Sets the application name to be reported in statistics and logs."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
 		},
 		&application_name,
@@ -4554,6 +4867,7 @@ static struct config_string ConfigureNamesString[] =
 		{"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
 			gettext_noop("Sets the name of the cluster, which is included in the process title."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME
 		},
 		&cluster_name,
@@ -4565,6 +4879,7 @@ static struct config_string ConfigureNamesString[] =
 		{"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
 			gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_NOT_IN_SAMPLE
 		},
 		&wal_consistency_checking_string,
@@ -4587,7 +4902,7 @@ static struct config_string ConfigureNamesString[] =
 		{"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Log backtrace for errors in these functions."),
 			NULL,
-			GUC_NOT_IN_SAMPLE
+			GUC_SUPERUSER_ONLY
 		},
 		&backtrace_functions,
 		"",
@@ -4606,7 +4921,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&backslash_quote,
 		BACKSLASH_QUOTE_SAFE_ENCODING, backslash_quote_options,
@@ -4616,7 +4932,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the output format for bytea."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bytea_output,
 		BYTEA_OUTPUT_HEX, bytea_output_options,
@@ -4627,7 +4944,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the message levels that are sent to the client."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&client_min_messages,
 		NOTICE, client_message_level_options,
@@ -4637,7 +4955,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"compute_query_id", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Compute query identifiers."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&compute_query_id,
 		COMPUTE_QUERY_ID_AUTO, compute_query_id_options,
@@ -4649,6 +4968,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Enables the planner to use constraints to optimize queries."),
 			gettext_noop("Table scans will be skipped if their constraints"
 						 " guarantee that no rows match the query."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&constraint_exclusion,
@@ -4659,7 +4979,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default compression method for compressible values."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&default_toast_compression,
 		TOAST_PGLZ_COMPRESSION,
@@ -4670,7 +4991,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the transaction isolation level of each new transaction."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&DefaultXactIsoLevel,
 		XACT_READ_COMMITTED, isolation_level_options,
@@ -4681,6 +5003,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's isolation level."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactIsoLevel,
@@ -4692,6 +5015,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the display format for interval values."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&IntervalStyle,
@@ -4702,7 +5026,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the verbosity of logged messages."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_error_verbosity,
 		PGERROR_DEFAULT, log_error_verbosity_options,
@@ -4713,7 +5038,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_messages", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the message levels that are logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_min_messages,
 		WARNING, server_message_level_options,
@@ -4724,7 +5050,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Causes all statements generating error at or above this level to be logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_min_error_statement,
 		ERROR, server_message_level_options,
@@ -4734,7 +5061,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_statement", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the type of statements logged."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_statement,
 		LOGSTMT_NONE, log_statement_options,
@@ -4744,7 +5072,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_facility,
 #ifdef HAVE_SYSLOG
@@ -4759,7 +5088,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&SessionReplicationRole,
 		SESSION_REPLICATION_ROLE_ORIGIN, session_replication_role_options,
@@ -4769,7 +5099,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the current transaction's synchronization level."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&synchronous_commit,
 		SYNCHRONOUS_COMMIT_ON, synchronous_commit_options,
@@ -4779,7 +5110,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
 			gettext_noop("Allows archiving of WAL files using archive_command."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&XLogArchiveMode,
 		ARCHIVE_MODE_OFF, archive_mode_options,
@@ -4789,7 +5121,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the action to perform upon reaching the recovery target."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryTargetAction,
 		RECOVERY_TARGET_ACTION_PAUSE, recovery_target_action_options,
@@ -4800,7 +5133,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"trace_recovery_messages", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Enables logging of recovery-related debugging information."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&trace_recovery_messages,
 
@@ -4815,7 +5149,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"track_functions", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects function-level statistics on database activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&pgstat_track_functions,
 		TRACK_FUNC_OFF, track_function_options,
@@ -4825,7 +5160,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_compression", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Compresses full-page writes written in WAL file with specified method."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_compression,
 		WAL_COMPRESSION_NONE, wal_compression_options,
@@ -4835,7 +5171,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the level of information written to the WAL."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_level,
 		WAL_LEVEL_REPLICA, wal_level_options,
@@ -4845,7 +5182,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the dynamic shared memory implementation used."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&dynamic_shared_memory_type,
 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
@@ -4855,7 +5193,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&shared_memory_type,
 		DEFAULT_SHARED_MEMORY_TYPE, shared_memory_options,
@@ -4865,7 +5204,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Selects the method used for forcing WAL updates to disk."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&sync_method,
 		DEFAULT_SYNC_METHOD, sync_method_options,
@@ -4875,7 +5215,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets how binary values are to be encoded in XML."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&xmlbinary,
 		XMLBINARY_BASE64, xmlbinary_options,
@@ -4886,7 +5227,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets whether XML data in implicit parsing and serialization "
 						 "operations is to be considered as documents or content fragments."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&xmloption,
 		XMLOPTION_CONTENT, xmloption_options,
@@ -4896,7 +5238,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Use of huge pages on Linux or Windows."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&huge_pages,
 		HUGE_PAGES_TRY, huge_pages_options,
@@ -4907,6 +5250,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"force_parallel_mode", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Forces use of parallel query facilities."),
 			gettext_noop("If possible, run query using a parallel worker and with parallel restrictions."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&force_parallel_mode,
@@ -4917,7 +5261,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
 			gettext_noop("Chooses the algorithm for encrypting passwords."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Password_encryption,
 		PASSWORD_TYPE_SCRAM_SHA_256, password_encryption_options,
@@ -4930,6 +5275,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Prepared statements can have custom and generic plans, and the planner "
 						 "will attempt to choose which is better.  This can be set to override "
 						 "the default behavior."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&plan_cache_mode,
@@ -4964,6 +5310,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_init_sync_method", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
+			NULL,
+			GUC_SUPERUSER_ONLY,
 		},
 		&recovery_init_sync_method,
 		RECOVERY_INIT_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
@@ -7251,6 +7599,15 @@ parse_and_validate_value(struct config_generic *record,
 	return true;
 }
 
+static bool
+role_has_privileges(Oid roleid, int privileges)
+{
+	if (privileges & GUC_SUPERUSER_ONLY)
+		return superuser_arg(roleid);
+
+	return false;
+}
+
 
 /*
  * Sets option `name' to given value.
@@ -7398,7 +7755,8 @@ set_config_option(const char *name, const char *value,
 			break;
 		case PGC_SU_BACKEND:
 			/* Reject if we're connecting but user is not superuser */
-			if (context == PGC_BACKEND)
+			if (context == PGC_BACKEND &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -7445,7 +7803,8 @@ set_config_option(const char *name, const char *value,
 			}
 			break;
 		case PGC_SUSET:
-			if (context == PGC_USERSET || context == PGC_BACKEND)
+			if ((context == PGC_USERSET || context == PGC_BACKEND) &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -8487,6 +8846,7 @@ replace_auto_config_value(ConfigVariable **head_p, ConfigVariable **tail_p,
 void
 AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 {
+	VariableSetKind kind;
 	char	   *name;
 	char	   *value;
 	bool		resetall = false;
@@ -8496,17 +8856,18 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 	char		AutoConfFileName[MAXPGPATH];
 	char		AutoConfTmpFileName[MAXPGPATH];
 
-	if (!superuser())
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to execute ALTER SYSTEM command")));
-
 	/*
 	 * Extract statement arguments
 	 */
 	name = altersysstmt->setstmt->name;
+	kind = altersysstmt->setstmt->kind;
 
-	switch (altersysstmt->setstmt->kind)
+	if (!superuser() && kind == VAR_RESET_ALL)
+		ereport(ERROR,
+				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+				 errmsg("must be superuser to execute ALTER SYSTEM RESET ALL command")));
+
+	switch (kind)
 	{
 		case VAR_SET_VALUE:
 			value = ExtractSetVariableArgs(altersysstmt->setstmt);
@@ -8550,6 +8911,15 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 					 errmsg("parameter \"%s\" cannot be changed",
 							name)));
 
+		/*
+		 * Deny non-superusers trying to run ALTER SYSTEM SET on variables
+		 * unless they belong to a role intended for the purpose.
+		 */
+		if (!role_has_privileges(GetUserId(), record->privileges))
+			ereport(ERROR,
+					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+					 errmsg("permission denied to set parameter \"%s\"", name)));
+
 		/*
 		 * If a value is specified, verify that it's sane.
 		 */
@@ -8911,6 +9281,7 @@ init_custom_variable(const char *name,
 					 const char *short_desc,
 					 const char *long_desc,
 					 GucContext context,
+					 int privileges,
 					 int flags,
 					 enum config_type type,
 					 size_t sz)
@@ -8956,6 +9327,7 @@ init_custom_variable(const char *name,
 	gen->group = CUSTOM_OPTIONS;
 	gen->short_desc = short_desc;
 	gen->long_desc = long_desc;
+	gen->privileges = privileges;
 	gen->flags = flags;
 	gen->vartype = type;
 
@@ -9154,6 +9526,7 @@ DefineCustomBoolVariable(const char *name,
 						 bool *valueAddr,
 						 bool bootValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucBoolCheckHook check_hook,
 						 GucBoolAssignHook assign_hook,
@@ -9162,8 +9535,8 @@ DefineCustomBoolVariable(const char *name,
 	struct config_bool *var;
 
 	var = (struct config_bool *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_BOOL, sizeof(struct config_bool));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_BOOL, sizeof(struct config_bool));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9182,6 +9555,7 @@ DefineCustomIntVariable(const char *name,
 						int minValue,
 						int maxValue,
 						GucContext context,
+						int privileges,
 						int flags,
 						GucIntCheckHook check_hook,
 						GucIntAssignHook assign_hook,
@@ -9190,8 +9564,8 @@ DefineCustomIntVariable(const char *name,
 	struct config_int *var;
 
 	var = (struct config_int *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_INT, sizeof(struct config_int));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_INT, sizeof(struct config_int));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9212,6 +9586,7 @@ DefineCustomRealVariable(const char *name,
 						 double minValue,
 						 double maxValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucRealCheckHook check_hook,
 						 GucRealAssignHook assign_hook,
@@ -9220,8 +9595,8 @@ DefineCustomRealVariable(const char *name,
 	struct config_real *var;
 
 	var = (struct config_real *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_REAL, sizeof(struct config_real));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_REAL, sizeof(struct config_real));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9240,6 +9615,7 @@ DefineCustomStringVariable(const char *name,
 						   char **valueAddr,
 						   const char *bootValue,
 						   GucContext context,
+						   int privileges,
 						   int flags,
 						   GucStringCheckHook check_hook,
 						   GucStringAssignHook assign_hook,
@@ -9248,8 +9624,8 @@ DefineCustomStringVariable(const char *name,
 	struct config_string *var;
 
 	var = (struct config_string *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_STRING, sizeof(struct config_string));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_STRING, sizeof(struct config_string));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->check_hook = check_hook;
@@ -9266,6 +9642,7 @@ DefineCustomEnumVariable(const char *name,
 						 int bootValue,
 						 const struct config_enum_entry *options,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucEnumCheckHook check_hook,
 						 GucEnumAssignHook assign_hook,
@@ -9274,8 +9651,8 @@ DefineCustomEnumVariable(const char *name,
 	struct config_enum *var;
 
 	var = (struct config_enum *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_ENUM, sizeof(struct config_enum));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_ENUM, sizeof(struct config_enum));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index a7c3a4958e..4e23109ead 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -198,6 +198,10 @@ typedef enum
 
 #define GUC_QUALIFIER_SEPARATOR '.'
 
+/*
+ * privilege bits required to modify a GUC variable
+ */
+
 /*
  * bit values in "flags" of a GUC variable
  */
@@ -294,6 +298,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 bool *valueAddr,
 									 bool bootValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
@@ -307,6 +312,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int minValue,
 									int maxValue,
 									GucContext context,
+									int privileges,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
@@ -320,6 +326,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 double minValue,
 									 double maxValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
@@ -331,6 +338,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   char **valueAddr,
 									   const char *bootValue,
 									   GucContext context,
+									   int privileges,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
@@ -343,6 +351,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int bootValue,
 									 const struct config_enum_entry *options,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h
index 6b40f1eeb8..27288236ae 100644
--- a/src/include/utils/guc_tables.h
+++ b/src/include/utils/guc_tables.h
@@ -143,6 +143,7 @@ struct config_generic
 	enum config_group group;	/* to help organize variables by function */
 	const char *short_desc;		/* short desc. of this variable's purpose */
 	const char *long_desc;		/* long desc. of this variable's purpose */
+	int			privileges;		/* privileges bits, see guc.h */
 	int			flags;			/* flag bits, see guc.h */
 	/* variable fields, initialized at runtime: */
 	enum config_type vartype;	/* type of variable (set only at startup) */
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 6299adf71a..730e5f6d14 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -406,7 +406,7 @@ _PG_init(void)
 							 NULL,
 							 &plperl_use_strict,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	/*
@@ -420,7 +420,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_init,
 							   NULL,
-							   PGC_SIGHUP, 0,
+							   PGC_SIGHUP, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	/*
@@ -442,7 +442,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperl_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plperl.on_plperlu_init",
@@ -450,7 +450,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperlu_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	EmitWarningsOnPlaceholders("plperl");
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c
index 00aace2f39..2fe38ffc24 100644
--- a/src/pl/plpgsql/src/pl_handler.c
+++ b/src/pl/plpgsql/src/pl_handler.c
@@ -158,7 +158,7 @@ _PG_init(void)
 							 &plpgsql_variable_conflict,
 							 PLPGSQL_RESOLVE_ERROR,
 							 variable_conflict_options,
-							 PGC_SUSET, 0,
+							 PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.print_strict_params",
@@ -166,7 +166,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_print_strict_params,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.check_asserts",
@@ -174,7 +174,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_check_asserts,
 							 true,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plpgsql.extra_warnings",
@@ -182,7 +182,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_warnings_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_SUPERUSER_ONLY, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_warnings_assign_hook,
 							   NULL);
@@ -192,7 +192,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_errors_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_SUPERUSER_ONLY, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_errors_assign_hook,
 							   NULL);
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index e11837559d..d72506aa26 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -464,14 +464,14 @@ _PG_init(void)
 							   NULL,
 							   &pltcl_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 	DefineCustomStringVariable("pltclu.start_proc",
 							   gettext_noop("PL/TclU function to call once when pltclu is first used."),
 							   NULL,
 							   &pltclu_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	pltcl_pm_init_done = true;
diff --git a/src/test/modules/delay_execution/delay_execution.c b/src/test/modules/delay_execution/delay_execution.c
index b3d0841ba8..e8f983c2c4 100644
--- a/src/test/modules/delay_execution/delay_execution.c
+++ b/src/test/modules/delay_execution/delay_execution.c
@@ -86,6 +86,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX,
 							PGC_USERSET,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
diff --git a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
index 6b0a3db104..e6bc2b0a6a 100644
--- a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
+++ b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
@@ -44,6 +44,7 @@ _PG_init(void)
 							   &ssl_passphrase,
 							   NULL,
 							   PGC_SIGHUP,
+							   GUC_SUPERUSER_ONLY,
 							   0,	/* no flags required */
 							   NULL,
 							   NULL,
diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c
index d0acef2652..d6f1e6ac0b 100644
--- a/src/test/modules/worker_spi/worker_spi.c
+++ b/src/test/modules/worker_spi/worker_spi.c
@@ -293,6 +293,7 @@ _PG_init(void)
 							1,
 							INT_MAX,
 							PGC_SIGHUP,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
@@ -309,6 +310,7 @@ _PG_init(void)
 							1,
 							100,
 							PGC_POSTMASTER,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
@@ -320,6 +322,7 @@ _PG_init(void)
 							   &worker_spi_database,
 							   "postgres",
 							   PGC_POSTMASTER,
+							   GUC_SUPERUSER_ONLY,
 							   0,
 							   NULL, NULL, NULL);
 
diff --git a/src/test/regress/expected/guc_priv_admin.out b/src/test/regress/expected/guc_priv_admin.out
new file mode 100644
index 0000000000..640b6e5581
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_admin.out
@@ -0,0 +1,1794 @@
+-- Superuser DBA
+CREATE ROLE admin SUPERUSER;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_discard_caches = 2;  -- ok
+RESET debug_discard_caches;  -- ok
+ALTER SYSTEM SET debug_discard_caches = 2;  -- ok
+ALTER SYSTEM RESET debug_discard_caches;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- ok
+ALTER SYSTEM RESET enable_memoize;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 7be89178f0..40b5ea3940 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_admin.sql b/src/test/regress/sql/guc_priv_admin.sql
new file mode 100644
index 0000000000..7bb2ed0e2b
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_admin.sql
@@ -0,0 +1,1422 @@
+-- Superuser DBA
+CREATE ROLE admin SUPERUSER;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_discard_caches = 2;  -- ok
+RESET debug_discard_caches;  -- ok
+ALTER SYSTEM SET debug_discard_caches = 2;  -- ok
+ALTER SYSTEM RESET debug_discard_caches;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- ok
+ALTER SYSTEM RESET enable_memoize;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
-- 
2.21.1 (Apple Git-122.3)

v5-0002-Adding-role-pg_manage_host_resource_settings.patchapplication/octet-stream; name=v5-0002-Adding-role-pg_manage_host_resource_settings.patch; x-unix-mode=0644Download
From cfebb50f6a8ba15ad882769f9269a2383b44513d Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 3 Aug 2021 09:36:14 -0700
Subject: [PATCH v5 02/12] Adding role pg_manage_host_resource_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls server resource usage (memory, disk, cpu, etc.)
---
 doc/src/sgml/user-manag.sgml                  |   12 +-
 src/backend/utils/misc/guc.c                  |   38 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../expected/guc_priv_host_resource_admin.out | 2465 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 .../sql/guc_priv_host_resource_admin.sql      | 1423 ++++++++++
 7 files changed, 3927 insertions(+), 19 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_host_resource_admin.out
 create mode 100644 src/test/regress/sql/guc_priv_host_resource_admin.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index fe0bdb7599..269429d91c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -581,6 +581,10 @@ DROP ROLE doomed_role;
        <entry>Allow executing programs on the database server as the user the database runs as with
        COPY and other functions which allow executing a server-side program.</entry>
       </row>
+      <row>
+       <entry>pg_manage_host_resource_settings</entry>
+       <entry>Allow changing settings which control host resource usage.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -624,10 +628,16 @@ DROP ROLE doomed_role;
   great care should be taken when granting these roles to users.
   </para>
 
+  <para>
+  The <literal>pg_manage_host_resource_settings</literal> role is intended to
+  allow administrators to have a trusted, but non-superuser, role to configure
+  memory, cpu, disk and filehandle usage.
+  </para>
+
   <para>
   Care should be taken when granting these roles to ensure they are only used where
   needed and with the understanding that these roles grant access to privileged
-  information.
+  information or the ability to misconfigure the server.
   </para>
 
   <para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index c20a7a7d76..fc62d584ae 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2442,7 +2442,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Amount of dynamic shared memory reserved at startup."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&min_dynamic_shared_memory,
@@ -2458,7 +2458,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the number of shared memory buffers used by the server."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_BLOCKS
 		},
 		&NBuffers,
@@ -2470,7 +2470,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_buffers", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of temporary buffers used by each session."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN
 		},
 		&num_temp_buffers,
@@ -2542,7 +2542,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This much memory can be used by each internal "
 						 "sort operation and hash table before switching to "
 						 "temporary disk files."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB | GUC_EXPLAIN
 		},
 		&work_mem,
@@ -2554,7 +2554,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used for maintenance operations."),
 			gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
@@ -2567,7 +2567,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum memory to be used for logical decoding."),
 			gettext_noop("This much memory can be used by each internal "
 						 "reorder buffer before spilling to disk."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&logical_decoding_work_mem,
@@ -2584,7 +2584,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum stack depth, in kilobytes."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&max_stack_depth,
@@ -2596,7 +2596,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
 			gettext_noop("Limits the total size of all temporary files used by each process."),
 			gettext_noop("-1 means no limit."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&temp_file_limit,
@@ -2663,7 +2663,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
 			gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_files_per_process,
 		1000, 64, INT_MAX,
@@ -2677,7 +2677,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_prepared_xacts,
 		0, 0, MAX_BACKENDS,
@@ -3553,7 +3553,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&autovacuum_work_mem,
@@ -3736,7 +3736,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("The size of huge page that should be requested."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&huge_page_size,
@@ -3951,7 +3951,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Multiple of work_mem to use for hash tables."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&hash_mem_multiplier,
@@ -5183,7 +5183,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the dynamic shared memory implementation used."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&dynamic_shared_memory_type,
 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
@@ -5194,7 +5194,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&shared_memory_type,
 		DEFAULT_SHARED_MEMORY_TYPE, shared_memory_options,
@@ -5239,7 +5239,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Use of huge pages on Linux or Windows."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&huge_pages,
 		HUGE_PAGES_TRY, huge_pages_options,
@@ -7605,7 +7605,11 @@ role_has_privileges(Oid roleid, int privileges)
 	if (privileges & GUC_SUPERUSER_ONLY)
 		return superuser_arg(roleid);
 
-	return false;
+	if ((privileges & GUC_MANAGE_HOST_RESOURCE_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_HOST_RESOURCE_SETTINGS))
+		return false;
+
+	return true;
 }
 
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 3da68016b6..daf62c2061 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -79,5 +79,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9279', oid_symbol => 'ROLE_PG_MANAGE_HOST_RESOURCE_SETTINGS',
+  rolname => 'pg_manage_host_resource_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 4e23109ead..b1ffc58b6a 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -201,6 +201,7 @@ typedef enum
 /*
  * privilege bits required to modify a GUC variable
  */
+#define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/guc_priv_host_resource_admin.out b/src/test/regress/expected/guc_priv_host_resource_admin.out
new file mode 100644
index 0000000000..32e78aba0a
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_host_resource_admin.out
@@ -0,0 +1,2465 @@
+-- Non-superuser with privileges to configure host resource usage
+CREATE ROLE host_resource_admin NOSUPERUSER;
+GRANT pg_manage_host_resource_settings TO host_resource_admin;
+-- Perform all operations as user 'host_resource_admin' --
+SET SESSION AUTHORIZATION host_resource_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+SET log_executor_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE host_resource_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 40b5ea3940..2297f35935 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_resource_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_host_resource_admin.sql b/src/test/regress/sql/guc_priv_host_resource_admin.sql
new file mode 100644
index 0000000000..34505d42e8
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_host_resource_admin.sql
@@ -0,0 +1,1423 @@
+-- Non-superuser with privileges to configure host resource usage
+CREATE ROLE host_resource_admin NOSUPERUSER;
+GRANT pg_manage_host_resource_settings TO host_resource_admin;
+-- Perform all operations as user 'host_resource_admin' --
+SET SESSION AUTHORIZATION host_resource_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, host_resource_admin has insufficient privileges
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, host_resource_admin has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, host_resource_admin has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, host_resource_admin has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, host_resource_admin has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, host_resource_admin has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, host_resource_admin has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, host_resource_admin has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, host_resource_admin has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, host_resource_admin has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, host_resource_admin has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, host_resource_admin has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, host_resource_admin has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, host_resource_admin has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, host_resource_admin has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, host_resource_admin has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, host_resource_admin has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, host_resource_admin has insufficient privileges
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, host_resource_admin has insufficient privileges
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, host_resource_admin has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, host_resource_admin has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, host_resource_admin has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, host_resource_admin has insufficient privileges
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, host_resource_admin has insufficient privileges
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, host_resource_admin has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, host_resource_admin has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, host_resource_admin has insufficient privileges
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, host_resource_admin has insufficient privileges
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, host_resource_admin has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, host_resource_admin has insufficient privileges
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, host_resource_admin has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, host_resource_admin has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, host_resource_admin has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, host_resource_admin has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, host_resource_admin has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, host_resource_admin has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, host_resource_admin has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, host_resource_admin has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, host_resource_admin has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, host_resource_admin has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, host_resource_admin has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, host_resource_admin has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, host_resource_admin has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, host_resource_admin has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, host_resource_admin has insufficient privileges
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, host_resource_admin has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, host_resource_admin has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, host_resource_admin has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, host_resource_admin has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, host_resource_admin has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, host_resource_admin has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, host_resource_admin has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, host_resource_admin has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, host_resource_admin has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, host_resource_admin has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, host_resource_admin has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, host_resource_admin has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, host_resource_admin has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, host_resource_admin has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, host_resource_admin has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, host_resource_admin has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, host_resource_admin has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, host_resource_admin has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, host_resource_admin has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+RESET lc_messages;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, host_resource_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, host_resource_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, host_resource_admin has insufficient privileges
+RESET session_replication_role;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, host_resource_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, host_resource_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, host_resource_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, host_resource_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, host_resource_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, host_resource_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, host_resource_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, host_resource_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, host_resource_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET log_duration;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, host_resource_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, host_resource_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, host_resource_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, host_resource_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, host_resource_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, host_resource_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, host_resource_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, host_resource_admin has insufficient privileges
+RESET log_statement;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, host_resource_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, host_resource_admin has insufficient privileges
+RESET log_temp_files;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, host_resource_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, host_resource_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, host_resource_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, host_resource_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, host_resource_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, host_resource_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, host_resource_admin has insufficient privileges
+RESET log_min_messages;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, host_resource_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET update_process_title;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET track_activities;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, host_resource_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET track_counts;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, host_resource_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, host_resource_admin has insufficient privileges
+RESET track_functions;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, host_resource_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET track_io_timing;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, host_resource_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, host_resource_admin has insufficient privileges
+RESET compute_query_id;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, host_resource_admin has insufficient privileges
+SET log_executor_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, host_resource_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, host_resource_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, host_resource_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+RESET commit_delay;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, host_resource_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, host_resource_admin has insufficient privileges
+RESET wal_compression;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, host_resource_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, host_resource_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, host_resource_admin has insufficient privileges
+RESET wal_recycle;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, host_resource_admin has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, host_resource_admin has insufficient privileges
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, host_resource_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, host_resource_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, host_resource_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, host_resource_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, host_resource_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, host_resource_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, host_resource_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, host_resource_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, host_resource_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, host_resource_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, host_resource_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, host_resource_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, host_resource_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, host_resource_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, host_resource_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, host_resource_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, host_resource_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, host_resource_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, host_resource_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, host_resource_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, host_resource_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, host_resource_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, host_resource_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, host_resource_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, host_resource_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, host_resource_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, host_resource_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, host_resource_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, host_resource_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, host_resource_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, host_resource_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, host_resource_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, host_resource_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, host_resource_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, host_resource_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, host_resource_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, host_resource_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, host_resource_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, host_resource_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, host_resource_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, host_resource_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, host_resource_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, host_resource_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, host_resource_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, host_resource_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, host_resource_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, host_resource_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, host_resource_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, host_resource_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, host_resource_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, host_resource_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, host_resource_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, host_resource_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, host_resource_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, host_resource_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, host_resource_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, host_resource_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, host_resource_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, host_resource_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, host_resource_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, host_resource_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, host_resource_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, host_resource_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, host_resource_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, host_resource_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, host_resource_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, host_resource_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, host_resource_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, host_resource_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, host_resource_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, host_resource_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, host_resource_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, host_resource_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, host_resource_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, host_resource_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, host_resource_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, host_resource_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, host_resource_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, host_resource_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, host_resource_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, host_resource_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, host_resource_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, host_resource_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, host_resource_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, host_resource_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, host_resource_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, host_resource_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, host_resource_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, host_resource_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, host_resource_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, host_resource_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, host_resource_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, host_resource_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, host_resource_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, host_resource_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, host_resource_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, host_resource_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE host_resource_admin;
-- 
2.21.1 (Apple Git-122.3)

v5-0003-Adding-role-pg_manage_vacuum_settings.patchapplication/octet-stream; name=v5-0003-Adding-role-pg_manage_vacuum_settings.patch; x-unix-mode=0644Download
From d224b952e60805b8da8bc4abf1e15678a79703ce Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 3 Aug 2021 09:40:04 -0700
Subject: [PATCH v5 03/12] Adding role pg_manage_vacuum_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls vacuum behavior or resource usage.
---
 doc/src/sgml/user-manag.sgml                  |   11 +-
 src/backend/utils/misc/guc.c                  |   14 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../expected/guc_priv_vacuum_admin.out        | 2489 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 .../regress/sql/guc_priv_vacuum_admin.sql     | 1423 ++++++++++
 7 files changed, 3936 insertions(+), 9 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_vacuum_admin.out
 create mode 100644 src/test/regress/sql/guc_priv_vacuum_admin.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 269429d91c..fac3312d6c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -585,6 +585,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_host_resource_settings</entry>
        <entry>Allow changing settings which control host resource usage.</entry>
       </row>
+      <row>
+       <entry>pg_manage_vacuum_settings</entry>
+       <entry>Allow changing settings which control vacuum behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -629,9 +633,10 @@ DROP ROLE doomed_role;
   </para>
 
   <para>
-  The <literal>pg_manage_host_resource_settings</literal> role is intended to
-  allow administrators to have a trusted, but non-superuser, role to configure
-  memory, cpu, disk and filehandle usage.
+  The <literal>pg_manage_host_resource_settings</literal> and
+  <literal>pg_manage_vacuum_settings</literal> roles are intended to allow
+  administrators to have trusted, but non-superuser, roles to configure the
+  server.
   </para>
 
   <para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index fc62d584ae..f7f2893746 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2608,7 +2608,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page found in the buffer cache."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostPageHit,
 		1, 0, 10000,
@@ -2619,7 +2619,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostPageMiss,
 		2, 0, 10000,
@@ -2630,7 +2630,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostPageDirty,
 		20, 0, 10000,
@@ -2641,7 +2641,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost amount available before napping."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostLimit,
 		200, 1, 10000,
@@ -3986,7 +3986,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost delay in milliseconds."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_VACUUM_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&VacuumCostDelay,
@@ -7609,6 +7609,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_HOST_RESOURCE_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_VACUUM_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_VACUUM_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index daf62c2061..cef9b7f015 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -84,5 +84,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9280', oid_symbol => 'ROLE_PG_MANAGE_VACUUM_SETTINGS',
+  rolname => 'pg_manage_vacuum_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index b1ffc58b6a..1cae7d2935 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -202,6 +202,7 @@ typedef enum
  * privilege bits required to modify a GUC variable
  */
 #define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
+#define GUC_MANAGE_VACUUM_SETTINGS			0x0002
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/guc_priv_vacuum_admin.out b/src/test/regress/expected/guc_priv_vacuum_admin.out
new file mode 100644
index 0000000000..9c40ac8208
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_vacuum_admin.out
@@ -0,0 +1,2489 @@
+-- Non-superuser with privileges to configure vacuum processes
+CREATE ROLE vacuum_admin NOSUPERUSER;
+GRANT pg_manage_vacuum_settings TO vacuum_admin;
+-- Perform all operations as user 'vacuum_admin' --
+SET SESSION AUTHORIZATION vacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+SET log_executor_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE vacuum_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 2297f35935..9ad2b077ba 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_resource_admin
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_resource_admin guc_priv_vacuum_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_vacuum_admin.sql b/src/test/regress/sql/guc_priv_vacuum_admin.sql
new file mode 100644
index 0000000000..e9e43f8a53
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_vacuum_admin.sql
@@ -0,0 +1,1423 @@
+-- Non-superuser with privileges to configure vacuum processes
+CREATE ROLE vacuum_admin NOSUPERUSER;
+GRANT pg_manage_vacuum_settings TO vacuum_admin;
+-- Perform all operations as user 'vacuum_admin' --
+SET SESSION AUTHORIZATION vacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, vacuum_admin has insufficient privileges
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, vacuum_admin has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, vacuum_admin has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, vacuum_admin has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, vacuum_admin has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, vacuum_admin has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, vacuum_admin has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, vacuum_admin has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, vacuum_admin has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, vacuum_admin has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, vacuum_admin has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, vacuum_admin has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, vacuum_admin has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, vacuum_admin has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, vacuum_admin has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, vacuum_admin has insufficient privileges
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, vacuum_admin has insufficient privileges
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, vacuum_admin has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, vacuum_admin has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, vacuum_admin has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, vacuum_admin has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, vacuum_admin has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, vacuum_admin has insufficient privileges
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, vacuum_admin has insufficient privileges
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, vacuum_admin has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, vacuum_admin has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, vacuum_admin has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, vacuum_admin has insufficient privileges
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, vacuum_admin has insufficient privileges
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, vacuum_admin has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, vacuum_admin has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, vacuum_admin has insufficient privileges
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, vacuum_admin has insufficient privileges
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, vacuum_admin has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, vacuum_admin has insufficient privileges
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, vacuum_admin has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, vacuum_admin has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, vacuum_admin has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, vacuum_admin has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, vacuum_admin has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, vacuum_admin has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, vacuum_admin has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, vacuum_admin has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, vacuum_admin has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, vacuum_admin has insufficient privileges
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, vacuum_admin has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, vacuum_admin has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, vacuum_admin has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, vacuum_admin has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, vacuum_admin has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, vacuum_admin has insufficient privileges
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, vacuum_admin has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, vacuum_admin has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, vacuum_admin has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, vacuum_admin has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, vacuum_admin has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, vacuum_admin has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, vacuum_admin has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, vacuum_admin has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, vacuum_admin has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, vacuum_admin has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, vacuum_admin has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, vacuum_admin has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, vacuum_admin has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, vacuum_admin has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, vacuum_admin has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, vacuum_admin has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, vacuum_admin has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, vacuum_admin has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, vacuum_admin has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+RESET lc_messages;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, vacuum_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, vacuum_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, vacuum_admin has insufficient privileges
+RESET session_replication_role;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, vacuum_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, vacuum_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, vacuum_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, vacuum_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, vacuum_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, vacuum_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, vacuum_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, vacuum_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, vacuum_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET log_duration;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, vacuum_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, vacuum_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, vacuum_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, vacuum_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, vacuum_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, vacuum_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, vacuum_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, vacuum_admin has insufficient privileges
+RESET log_statement;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, vacuum_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, vacuum_admin has insufficient privileges
+RESET log_temp_files;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, vacuum_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, vacuum_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, vacuum_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, vacuum_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, vacuum_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, vacuum_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, vacuum_admin has insufficient privileges
+RESET log_min_messages;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, vacuum_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET update_process_title;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, vacuum_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET track_activities;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, vacuum_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET track_counts;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, vacuum_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, vacuum_admin has insufficient privileges
+RESET track_functions;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, vacuum_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET track_io_timing;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, vacuum_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, vacuum_admin has insufficient privileges
+RESET compute_query_id;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, vacuum_admin has insufficient privileges
+SET log_executor_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, vacuum_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, vacuum_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, vacuum_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+RESET commit_delay;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, vacuum_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, vacuum_admin has insufficient privileges
+RESET wal_compression;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, vacuum_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, vacuum_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, vacuum_admin has insufficient privileges
+RESET wal_recycle;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, vacuum_admin has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, vacuum_admin has insufficient privileges
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, vacuum_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, vacuum_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, vacuum_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, vacuum_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, vacuum_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, vacuum_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, vacuum_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, vacuum_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, vacuum_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, vacuum_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, vacuum_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, vacuum_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, vacuum_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, vacuum_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, vacuum_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, vacuum_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, vacuum_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, vacuum_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, vacuum_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, vacuum_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, vacuum_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, vacuum_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, vacuum_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, vacuum_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, vacuum_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, vacuum_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, vacuum_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, vacuum_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, vacuum_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, vacuum_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, vacuum_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, vacuum_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, vacuum_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, vacuum_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, vacuum_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, vacuum_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, vacuum_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, vacuum_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, vacuum_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, vacuum_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, vacuum_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, vacuum_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, vacuum_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, vacuum_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, vacuum_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, vacuum_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, vacuum_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, vacuum_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, vacuum_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, vacuum_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, vacuum_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, vacuum_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, vacuum_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, vacuum_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, vacuum_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, vacuum_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, vacuum_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, vacuum_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, vacuum_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, vacuum_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, vacuum_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, vacuum_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, vacuum_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, vacuum_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, vacuum_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, vacuum_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, vacuum_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, vacuum_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, vacuum_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, vacuum_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, vacuum_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, vacuum_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, vacuum_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, vacuum_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, vacuum_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, vacuum_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, vacuum_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, vacuum_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, vacuum_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, vacuum_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, vacuum_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, vacuum_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, vacuum_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, vacuum_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, vacuum_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, vacuum_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, vacuum_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, vacuum_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, vacuum_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, vacuum_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, vacuum_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, vacuum_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, vacuum_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, vacuum_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, vacuum_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, vacuum_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, vacuum_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, vacuum_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, vacuum_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, vacuum_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, vacuum_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, vacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, vacuum_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, vacuum_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, vacuum_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE vacuum_admin;
-- 
2.21.1 (Apple Git-122.3)

v5-0004-Adding-role-pg_manage_autovacuum_settings.patchapplication/octet-stream; name=v5-0004-Adding-role-pg_manage_autovacuum_settings.patch; x-unix-mode=0644Download
From 4967240dbdb1653db21b71849c79896a00ea8f3b Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 3 Aug 2021 09:43:14 -0700
Subject: [PATCH v5 04/12] Adding role pg_manage_autovacuum_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls autovacuum behavior or resource usage.
---
 doc/src/sgml/user-manag.sgml                  |    9 +-
 src/backend/utils/misc/guc.c                  |   30 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../expected/guc_priv_autovacuum_admin.out    | 2473 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 .../regress/sql/guc_priv_autovacuum_admin.sql | 1423 ++++++++++
 7 files changed, 3927 insertions(+), 16 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_autovacuum_admin.out
 create mode 100644 src/test/regress/sql/guc_priv_autovacuum_admin.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index fac3312d6c..dca943465e 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -589,6 +589,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_vacuum_settings</entry>
        <entry>Allow changing settings which control vacuum behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_autovacuum_settings</entry>
+       <entry>Allow changing settings which control autovacuum behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -633,8 +637,9 @@ DROP ROLE doomed_role;
   </para>
 
   <para>
-  The <literal>pg_manage_host_resource_settings</literal> and
-  <literal>pg_manage_vacuum_settings</literal> roles are intended to allow
+  The <literal>pg_manage_host_resource_settings</literal>,
+  <literal>pg_manage_vacuum_settings</literal> and
+  <literal>pg_manage_autovacuum_settings</literal> roles are intended to allow
   administrators to have trusted, but non-superuser, roles to configure the
   server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index f7f2893746..4d515bc9f9 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1629,7 +1629,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"autovacuum", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Starts the autovacuum subprocess."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_start_daemon,
 		true,
@@ -2652,7 +2652,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_cost_limit,
 		-1, -1, 10000,
@@ -3438,7 +3438,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Time to sleep between autovacuum runs."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_AUTOVACUUM_SETTINGS,
 			GUC_UNIT_S
 		},
 		&autovacuum_naptime,
@@ -3449,7 +3449,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_thresh,
 		50, 0, INT_MAX,
@@ -3459,7 +3459,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_ins_thresh,
 		1000, -1, INT_MAX,
@@ -3469,7 +3469,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_anl_thresh,
 		50, 0, INT_MAX,
@@ -3480,7 +3480,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_freeze_max_age,
 
@@ -3496,7 +3496,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_multixact_freeze_max_age,
 		400000000, 10000, 2000000000,
@@ -3507,7 +3507,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_max_workers,
 		3, 1, MAX_BACKENDS,
@@ -3998,7 +3998,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_AUTOVACUUM_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&autovacuum_vac_cost_delay,
@@ -4010,7 +4010,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_scale,
 		0.2, 0.0, 100.0,
@@ -4021,7 +4021,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_ins_scale,
 		0.2, 0.0, 100.0,
@@ -4032,7 +4032,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_anl_scale,
 		0.1, 0.0, 100.0,
@@ -7613,6 +7613,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_VACUUM_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_AUTOVACUUM_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_AUTOVACUUM_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index cef9b7f015..588b0954d8 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -89,5 +89,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9281', oid_symbol => 'ROLE_PG_MANAGE_AUTOVACUUM_SETTINGS',
+  rolname => 'pg_manage_autovacuum_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 1cae7d2935..5627b53895 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -203,6 +203,7 @@ typedef enum
  */
 #define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
 #define GUC_MANAGE_VACUUM_SETTINGS			0x0002
+#define GUC_MANAGE_AUTOVACUUM_SETTINGS		0x0004
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/guc_priv_autovacuum_admin.out b/src/test/regress/expected/guc_priv_autovacuum_admin.out
new file mode 100644
index 0000000000..995fefd9c9
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_autovacuum_admin.out
@@ -0,0 +1,2473 @@
+-- Non-superuser with privileges to configure autovacuum processes
+CREATE ROLE autovacuum_admin NOSUPERUSER;
+GRANT pg_manage_autovacuum_settings TO autovacuum_admin;
+-- Perform all operations as user 'autovacuum_admin' --
+SET SESSION AUTHORIZATION autovacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+SET log_executor_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE autovacuum_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 9ad2b077ba..e7b0585624 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_resource_admin guc_priv_vacuum_admin
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_resource_admin guc_priv_vacuum_admin guc_priv_autovacuum_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_autovacuum_admin.sql b/src/test/regress/sql/guc_priv_autovacuum_admin.sql
new file mode 100644
index 0000000000..6f437b3f5b
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_autovacuum_admin.sql
@@ -0,0 +1,1423 @@
+-- Non-superuser with privileges to configure autovacuum processes
+CREATE ROLE autovacuum_admin NOSUPERUSER;
+GRANT pg_manage_autovacuum_settings TO autovacuum_admin;
+-- Perform all operations as user 'autovacuum_admin' --
+SET SESSION AUTHORIZATION autovacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, autovacuum_admin has insufficient privileges
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, autovacuum_admin has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, autovacuum_admin has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, autovacuum_admin has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, autovacuum_admin has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, autovacuum_admin has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, autovacuum_admin has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, autovacuum_admin has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, autovacuum_admin has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, autovacuum_admin has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, autovacuum_admin has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, autovacuum_admin has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, autovacuum_admin has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, autovacuum_admin has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, autovacuum_admin has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, autovacuum_admin has insufficient privileges
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, autovacuum_admin has insufficient privileges
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, autovacuum_admin has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, autovacuum_admin has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, autovacuum_admin has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, autovacuum_admin has insufficient privileges
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, autovacuum_admin has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, autovacuum_admin has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, autovacuum_admin has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, autovacuum_admin has insufficient privileges
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, autovacuum_admin has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, autovacuum_admin has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, autovacuum_admin has insufficient privileges
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, autovacuum_admin has insufficient privileges
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, autovacuum_admin has insufficient privileges
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, autovacuum_admin has insufficient privileges
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, autovacuum_admin has insufficient privileges
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, autovacuum_admin has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, autovacuum_admin has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, autovacuum_admin has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, autovacuum_admin has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, autovacuum_admin has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, autovacuum_admin has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, autovacuum_admin has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, autovacuum_admin has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, autovacuum_admin has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, autovacuum_admin has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, autovacuum_admin has insufficient privileges
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, autovacuum_admin has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, autovacuum_admin has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, autovacuum_admin has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, autovacuum_admin has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, autovacuum_admin has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, autovacuum_admin has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, autovacuum_admin has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, autovacuum_admin has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, autovacuum_admin has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+RESET lc_messages;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, autovacuum_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, autovacuum_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, autovacuum_admin has insufficient privileges
+RESET session_replication_role;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, autovacuum_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, autovacuum_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, autovacuum_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, autovacuum_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, autovacuum_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, autovacuum_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, autovacuum_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, autovacuum_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_duration;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, autovacuum_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, autovacuum_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, autovacuum_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, autovacuum_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, autovacuum_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, autovacuum_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, autovacuum_admin has insufficient privileges
+RESET log_statement;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, autovacuum_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_temp_files;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, autovacuum_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, autovacuum_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, autovacuum_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, autovacuum_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, autovacuum_admin has insufficient privileges
+RESET log_min_messages;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, autovacuum_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET update_process_title;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, autovacuum_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, autovacuum_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET track_activities;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, autovacuum_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET track_counts;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, autovacuum_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, autovacuum_admin has insufficient privileges
+RESET track_functions;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, autovacuum_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET track_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, autovacuum_admin has insufficient privileges
+RESET compute_query_id;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, autovacuum_admin has insufficient privileges
+SET log_executor_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, autovacuum_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, autovacuum_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, autovacuum_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+RESET commit_delay;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, autovacuum_admin has insufficient privileges
+RESET wal_compression;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, autovacuum_admin has insufficient privileges
+RESET wal_recycle;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, autovacuum_admin has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, autovacuum_admin has insufficient privileges
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, autovacuum_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, autovacuum_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, autovacuum_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, autovacuum_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, autovacuum_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, autovacuum_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, autovacuum_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, autovacuum_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, autovacuum_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, autovacuum_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, autovacuum_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, autovacuum_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, autovacuum_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, autovacuum_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, autovacuum_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, autovacuum_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, autovacuum_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, autovacuum_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, autovacuum_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, autovacuum_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, autovacuum_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, autovacuum_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, autovacuum_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, autovacuum_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, autovacuum_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, autovacuum_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, autovacuum_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, autovacuum_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, autovacuum_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, autovacuum_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, autovacuum_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, autovacuum_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, autovacuum_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, autovacuum_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, autovacuum_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, autovacuum_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, autovacuum_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, autovacuum_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, autovacuum_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, autovacuum_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, autovacuum_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, autovacuum_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, autovacuum_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, autovacuum_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, autovacuum_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, autovacuum_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, autovacuum_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, autovacuum_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, autovacuum_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, autovacuum_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, autovacuum_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, autovacuum_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, autovacuum_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, autovacuum_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, autovacuum_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, autovacuum_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, autovacuum_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, autovacuum_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, autovacuum_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, autovacuum_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, autovacuum_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, autovacuum_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, autovacuum_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, autovacuum_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, autovacuum_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, autovacuum_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, autovacuum_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, autovacuum_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, autovacuum_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, autovacuum_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, autovacuum_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, autovacuum_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, autovacuum_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, autovacuum_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, autovacuum_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE autovacuum_admin;
-- 
2.21.1 (Apple Git-122.3)

v5-0005-Adding-role-pg_manage_logging_settings.patchapplication/octet-stream; name=v5-0005-Adding-role-pg_manage_logging_settings.patch; x-unix-mode=0644Download
From 719a08c1b801bca6ca0f12fc9c98e5c2d8103199 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Wed, 18 Aug 2021 08:05:41 -0700
Subject: [PATCH v5 05/12] Adding role pg_manage_logging_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls what and when to log.  Note that variables controlling
where to log may not be set by this role, as that would implicate
far morre extensive security concerns.
---
 doc/src/sgml/user-manag.sgml                  |    9 +-
 src/backend/utils/misc/guc.c                  |   58 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../expected/guc_priv_logging_admin.out       | 2419 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 .../regress/sql/guc_priv_logging_admin.sql    | 1423 ++++++++++
 7 files changed, 3887 insertions(+), 30 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_logging_admin.out
 create mode 100644 src/test/regress/sql/guc_priv_logging_admin.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index dca943465e..5fd8a5d2f7 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -593,6 +593,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_autovacuum_settings</entry>
        <entry>Allow changing settings which control autovacuum behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_logging_settings</entry>
+       <entry>Allow changing settings which control logging behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -638,8 +642,9 @@ DROP ROLE doomed_role;
 
   <para>
   The <literal>pg_manage_host_resource_settings</literal>,
-  <literal>pg_manage_vacuum_settings</literal> and
-  <literal>pg_manage_autovacuum_settings</literal> roles are intended to allow
+  <literal>pg_manage_vacuum_settings</literal>,
+  <literal>pg_manage_autovacuum_settings</literal> and
+  <literal>pg_manage_logging_settings</literal> roles are intended to allow
   administrators to have trusted, but non-superuser, roles to configure the
   server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 4d515bc9f9..ae64147065 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1379,7 +1379,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs each checkpoint."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_checkpoints,
 		false,
@@ -1389,7 +1389,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs each successful connection."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_connections,
 		false,
@@ -1399,7 +1399,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs end of a session, including duration."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_disconnections,
 		false,
@@ -1409,7 +1409,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs each replication command."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_replication_commands,
 		false,
@@ -1467,7 +1467,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_duration", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs the duration of each completed SQL statement."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_duration,
 		false,
@@ -1477,7 +1477,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's parse tree."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_print_parse,
 		false,
@@ -1487,7 +1487,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's rewritten parse tree."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_print_rewritten,
 		false,
@@ -1497,7 +1497,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's execution plan."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_print_plan,
 		false,
@@ -1507,7 +1507,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Indents parse and plan tree displays."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_pretty_print,
 		true,
@@ -1699,7 +1699,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs long lock waits."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_lock_waits,
 		false,
@@ -1709,7 +1709,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs standby recovery conflict waits."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_recovery_conflict_waits,
 		false,
@@ -1722,7 +1722,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "of the connecting host. If you want them to show the host name you "
 						 "can turn this on, but depending on your host name resolution "
 						 "setup it might impose a non-negligible performance penalty."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_hostname,
 		false,
@@ -3129,7 +3129,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "a sample of statements will be logged."
 						 " Sampling is determined by log_statement_sample_rate."),
 			gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_sample,
@@ -3142,7 +3142,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "all statements will be logged."),
 			gettext_noop("Zero prints all queries. -1 turns this feature off."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_statement,
@@ -3155,7 +3155,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "autovacuum actions will be logged."),
 			gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&Log_autovacuum_min_duration,
@@ -3167,7 +3167,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("When logging statements, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length,
@@ -3179,7 +3179,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("When reporting an error, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length_on_error,
@@ -3688,7 +3688,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_temp_files", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
 			gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&log_temp_files,
@@ -4054,7 +4054,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log)."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_statement_sample_rate,
 		1.0, 0.0, 1.0,
@@ -4066,7 +4066,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the fraction of transactions from which to log all statements."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
 						 "statements for all transactions)."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_xact_sample_rate,
 		0.0, 0.0, 1.0,
@@ -4237,7 +4237,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Controls information prefixed to each log line."),
 			gettext_noop("If blank, no prefix is used."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_line_prefix,
 		"%m [%p] ",
@@ -4248,7 +4248,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Sets the time zone to use in log messages."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_timezone_string,
 		"GMT",
@@ -4855,7 +4855,7 @@ static struct config_string ConfigureNamesString[] =
 		{"application_name", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Sets the application name to be reported in statistics and logs."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
 		},
 		&application_name,
@@ -5027,7 +5027,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the verbosity of logged messages."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_error_verbosity,
 		PGERROR_DEFAULT, log_error_verbosity_options,
@@ -5039,7 +5039,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Sets the message levels that are logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
 						 " the level, the fewer messages are sent."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_min_messages,
 		WARNING, server_message_level_options,
@@ -5051,7 +5051,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Causes all statements generating error at or above this level to be logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
 						 " the level, the fewer messages are sent."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_min_error_statement,
 		ERROR, server_message_level_options,
@@ -5062,7 +5062,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_statement", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the type of statements logged."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_statement,
 		LOGSTMT_NONE, log_statement_options,
@@ -7617,6 +7617,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_AUTOVACUUM_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_LOGGING_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_LOGGING_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 588b0954d8..41d119f7b2 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -94,5 +94,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9282', oid_symbol => 'ROLE_PG_MANAGE_LOGGING_SETTINGS',
+  rolname => 'pg_manage_logging_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 5627b53895..f6ad969109 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -204,6 +204,7 @@ typedef enum
 #define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
 #define GUC_MANAGE_VACUUM_SETTINGS			0x0002
 #define GUC_MANAGE_AUTOVACUUM_SETTINGS		0x0004
+#define GUC_MANAGE_LOGGING_SETTINGS			0x0008
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/guc_priv_logging_admin.out b/src/test/regress/expected/guc_priv_logging_admin.out
new file mode 100644
index 0000000000..c410675ee5
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_logging_admin.out
@@ -0,0 +1,2419 @@
+-- Non-superuser with privileges to configure logging settings
+CREATE ROLE logging_admin NOSUPERUSER;
+GRANT pg_manage_logging_settings TO logging_admin;
+-- Perform all operations as user 'logging_admin' --
+SET SESSION AUTHORIZATION logging_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+SET log_executor_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE logging_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index e7b0585624..8fd9d215ff 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_resource_admin guc_priv_vacuum_admin guc_priv_autovacuum_admin
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin guc_priv_host_resource_admin guc_priv_vacuum_admin guc_priv_autovacuum_admin guc_priv_logging_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_logging_admin.sql b/src/test/regress/sql/guc_priv_logging_admin.sql
new file mode 100644
index 0000000000..02f18acd9b
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_logging_admin.sql
@@ -0,0 +1,1423 @@
+-- Non-superuser with privileges to configure logging settings
+CREATE ROLE logging_admin NOSUPERUSER;
+GRANT pg_manage_logging_settings TO logging_admin;
+-- Perform all operations as user 'logging_admin' --
+SET SESSION AUTHORIZATION logging_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, logging_admin has insufficient privileges
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, logging_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, logging_admin has insufficient privileges
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, logging_admin has insufficient privileges
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, logging_admin has insufficient privileges
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, logging_admin has insufficient privileges
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, logging_admin has insufficient privileges
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, logging_admin has insufficient privileges
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, logging_admin has insufficient privileges
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, logging_admin has insufficient privileges
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, logging_admin has insufficient privileges
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, logging_admin has insufficient privileges
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, logging_admin has insufficient privileges
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, logging_admin has insufficient privileges
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, logging_admin has insufficient privileges
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, logging_admin has insufficient privileges
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, logging_admin has insufficient privileges
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, logging_admin has insufficient privileges
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, logging_admin has insufficient privileges
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, logging_admin has insufficient privileges
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, logging_admin has insufficient privileges
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, logging_admin has insufficient privileges
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, logging_admin has insufficient privileges
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, logging_admin has insufficient privileges
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, logging_admin has insufficient privileges
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, logging_admin has insufficient privileges
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, logging_admin has insufficient privileges
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, logging_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, logging_admin has insufficient privileges
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, logging_admin has insufficient privileges
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, logging_admin has insufficient privileges
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, logging_admin has insufficient privileges
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, logging_admin has insufficient privileges
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, logging_admin has insufficient privileges
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, logging_admin has insufficient privileges
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, logging_admin has insufficient privileges
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, logging_admin has insufficient privileges
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, logging_admin has insufficient privileges
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, logging_admin has insufficient privileges
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, logging_admin has insufficient privileges
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, logging_admin has insufficient privileges
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, logging_admin has insufficient privileges
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, logging_admin has insufficient privileges
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, logging_admin has insufficient privileges
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, logging_admin has insufficient privileges
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, logging_admin has insufficient privileges
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, logging_admin has insufficient privileges
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, logging_admin has insufficient privileges
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, logging_admin has insufficient privileges
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, logging_admin has insufficient privileges
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, logging_admin has insufficient privileges
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, logging_admin has insufficient privileges
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, logging_admin has insufficient privileges
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, logging_admin has insufficient privileges
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, logging_admin has insufficient privileges
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, logging_admin has insufficient privileges
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, logging_admin has insufficient privileges
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, logging_admin has insufficient privileges
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, logging_admin has insufficient privileges
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, logging_admin has insufficient privileges
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, logging_admin has insufficient privileges
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, logging_admin has insufficient privileges
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, logging_admin has insufficient privileges
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, logging_admin has insufficient privileges
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, logging_admin has insufficient privileges
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, logging_admin has insufficient privileges
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, logging_admin has insufficient privileges
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, logging_admin has insufficient privileges
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, logging_admin has insufficient privileges
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, logging_admin has insufficient privileges
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, logging_admin has insufficient privileges
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, logging_admin has insufficient privileges
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, logging_admin has insufficient privileges
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, logging_admin has insufficient privileges
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, logging_admin has insufficient privileges
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, logging_admin has insufficient privileges
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, logging_admin has insufficient privileges
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, logging_admin has insufficient privileges
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, logging_admin has insufficient privileges
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, logging_admin has insufficient privileges
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, logging_admin has insufficient privileges
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, logging_admin has insufficient privileges
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, logging_admin has insufficient privileges
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, logging_admin has insufficient privileges
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+RESET lc_messages;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, logging_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, logging_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, logging_admin has insufficient privileges
+RESET session_replication_role;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, logging_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, logging_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, logging_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logging_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, logging_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, logging_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, logging_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, logging_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, logging_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, logging_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, logging_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logging_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, logging_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, logging_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, logging_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, logging_admin has insufficient privileges
+RESET update_process_title;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, logging_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, logging_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, logging_admin has insufficient privileges
+RESET track_activities;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, logging_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, logging_admin has insufficient privileges
+RESET track_counts;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, logging_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, logging_admin has insufficient privileges
+RESET track_functions;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, logging_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+RESET track_io_timing;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, logging_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, logging_admin has insufficient privileges
+RESET compute_query_id;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, logging_admin has insufficient privileges
+SET log_executor_stats = OFF;  -- fail, logging_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, logging_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, logging_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, logging_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, logging_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, logging_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, logging_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, logging_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, logging_admin has insufficient privileges
+RESET commit_delay;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, logging_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, logging_admin has insufficient privileges
+RESET wal_compression;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, logging_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, logging_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, logging_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, logging_admin has insufficient privileges
+RESET wal_recycle;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, logging_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, logging_admin has insufficient privileges
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, logging_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, logging_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, logging_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, logging_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, logging_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, logging_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, logging_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, logging_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, logging_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, logging_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, logging_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, logging_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, logging_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, logging_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, logging_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, logging_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, logging_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, logging_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, logging_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, logging_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, logging_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, logging_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, logging_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, logging_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, logging_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, logging_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, logging_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, logging_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, logging_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, logging_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, logging_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, logging_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, logging_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, logging_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, logging_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, logging_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, logging_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, logging_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, logging_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, logging_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, logging_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, logging_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, logging_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, logging_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, logging_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, logging_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, logging_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, logging_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, logging_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, logging_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, logging_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, logging_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, logging_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, logging_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, logging_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, logging_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, logging_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, logging_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, logging_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, logging_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, logging_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, logging_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, logging_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, logging_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, logging_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, logging_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, logging_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, logging_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, logging_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, logging_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, logging_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, logging_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, logging_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, logging_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, logging_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, logging_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, logging_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, logging_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, logging_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, logging_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, logging_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, logging_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, logging_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, logging_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, logging_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, logging_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, logging_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, logging_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, logging_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, logging_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, logging_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, logging_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, logging_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, logging_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, logging_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, logging_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, logging_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, logging_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, logging_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, logging_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, logging_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, logging_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, logging_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, logging_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, logging_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE logging_admin;
-- 
2.21.1 (Apple Git-122.3)

v5-0006-Allow-event-trigger-ownership-by-non-superusers.patchapplication/octet-stream; name=v5-0006-Allow-event-trigger-ownership-by-non-superusers.patch; x-unix-mode=0644Download
From a32bf47d9c2cad86c68e2bb58919dc73179f59c0 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 29 Jul 2021 15:59:28 -0700
Subject: [PATCH v5 06/12] Allow event trigger ownership by non-superusers

Non-superusers can already end up owning event triggers if superuser
is revoked from an event trigger owner, so quit the pretense and
simply allow the ownership transfer overtly by ALTER EVENT TRIGGER.

The prior situation did more to give a false sense that event
triggers would never be owned by non-superusers than it did to
actually prevent that scenario from arising.
---
 doc/src/sgml/ref/alter_event_trigger.sgml   |  4 +++-
 src/backend/commands/event_trigger.c        |  9 ++-------
 src/test/regress/expected/event_trigger.out | 17 +++++++++++++++--
 src/test/regress/sql/event_trigger.sql      | 21 +++++++++++++++++++++
 4 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/doc/src/sgml/ref/alter_event_trigger.sgml b/doc/src/sgml/ref/alter_event_trigger.sgml
index ef5253bf37..54b7af5f99 100644
--- a/doc/src/sgml/ref/alter_event_trigger.sgml
+++ b/doc/src/sgml/ref/alter_event_trigger.sgml
@@ -37,7 +37,9 @@ ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> RENAME TO
   </para>
 
   <para>
-   You must be superuser to alter an event trigger.
+   You must own the event trigger to use <command>ALTER EVENT TRIGGER</command>.
+   To alter the owner, you must also be a direct or indirect member of the
+   new owning role.
   </para>
  </refsect1>
 
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 71612d577e..93e211cecf 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -476,13 +476,8 @@ AlterEventTriggerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_EVENT_TRIGGER,
 					   NameStr(form->evtname));
 
-	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("permission denied to change owner of event trigger \"%s\"",
-						NameStr(form->evtname)),
-				 errhint("The owner of an event trigger must be a superuser.")));
+	/* Must be able to assign ownership to the target role */
+	check_is_member_of_role(GetUserId(), newOwnerId);
 
 	form->evtowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index 44d545de25..d56c75de84 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -175,11 +175,24 @@ alter default privileges for role regress_evt_user
 NOTICE:  test_event_trigger: ddl_command_end ALTER DEFAULT PRIVILEGES
 -- alter owner to non-superuser should fail
 alter event trigger regress_event_trigger owner to regress_evt_user;
-ERROR:  permission denied to change owner of event trigger "regress_event_trigger"
-HINT:  The owner of an event trigger must be a superuser.
 -- alter owner to superuser should work
 alter role regress_evt_user superuser;
 alter event trigger regress_event_trigger owner to regress_evt_user;
+-- revoke superuser from new owner
+alter role regress_evt_user nosuperuser;
+create role regress_evt_user2;
+set session authorization regress_evt_user;
+-- fail - not a member of the target role
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+ERROR:  must be member of role "regress_evt_user2"
+reset session authorization;
+grant regress_evt_user2 to regress_evt_user;
+set session authorization regress_evt_user;
+-- OK
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+reset session authorization;
+alter event trigger regress_event_trigger owner to regress_evt_user;
+drop role regress_evt_user2;
 -- should fail, name collision
 alter event trigger regress_event_trigger rename to regress_event_trigger2;
 ERROR:  event trigger "regress_event_trigger2" already exists
diff --git a/src/test/regress/sql/event_trigger.sql b/src/test/regress/sql/event_trigger.sql
index 1446cf8cc8..ef79b1059d 100644
--- a/src/test/regress/sql/event_trigger.sql
+++ b/src/test/regress/sql/event_trigger.sql
@@ -150,6 +150,27 @@ alter event trigger regress_event_trigger owner to regress_evt_user;
 alter role regress_evt_user superuser;
 alter event trigger regress_event_trigger owner to regress_evt_user;
 
+-- revoke superuser from new owner
+alter role regress_evt_user nosuperuser;
+
+create role regress_evt_user2;
+set session authorization regress_evt_user;
+
+-- fail - not a member of the target role
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+
+reset session authorization;
+grant regress_evt_user2 to regress_evt_user;
+set session authorization regress_evt_user;
+
+-- OK
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+
+reset session authorization;
+
+alter event trigger regress_event_trigger owner to regress_evt_user;
+drop role regress_evt_user2;
+
 -- should fail, name collision
 alter event trigger regress_event_trigger rename to regress_event_trigger2;
 
-- 
2.21.1 (Apple Git-122.3)

v5-0007-Condition-event-triggers-on-owning-role.patchapplication/octet-stream; name=v5-0007-Condition-event-triggers-on-owning-role.patch; x-unix-mode=0644Download
From 92ac148b82487d4661ed7d4f5d70236e21f25e17 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Fri, 30 Jul 2021 08:52:01 -0700
Subject: [PATCH v5 07/12] Condition event triggers on owning role

Make event triggers fire only when the trigger owner is a direct or
indirect member of the role which performed the event.  For
superuser owners, nothing changes, but by assigning event trigger
ownership to a non-superuser, this provides a way of filtering when
a trigger fires.
---
 doc/src/sgml/event-trigger.sgml             |  7 +++++++
 doc/src/sgml/ref/create_event_trigger.sgml  | 11 ++++++-----
 src/backend/commands/event_trigger.c        |  9 +++++++--
 src/backend/utils/cache/evtcache.c          |  1 +
 src/include/utils/evtcache.h                |  1 +
 src/test/regress/expected/event_trigger.out | 17 +++++++++++++++++
 src/test/regress/sql/event_trigger.sql      | 21 +++++++++++++++++++++
 7 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/doc/src/sgml/event-trigger.sgml b/doc/src/sgml/event-trigger.sgml
index 60366a950e..f003bedc29 100644
--- a/doc/src/sgml/event-trigger.sgml
+++ b/doc/src/sgml/event-trigger.sgml
@@ -119,6 +119,13 @@
      to intercept. A common use of such triggers is to restrict the range of
      DDL operations which users may perform.
    </para>
+
+   <para>
+    A trigger will only fire if the trigger owner is a direct or indirect
+    member of the role which performed the event.  (Note that
+    <productname>PostgreSQL</productname> prior to version 15.0 did not
+    condition trigger firing on the permissions of the trigger owner.)
+   </para>
   </sect1>
 
   <sect1 id="event-trigger-matrix">
diff --git a/doc/src/sgml/ref/create_event_trigger.sgml b/doc/src/sgml/ref/create_event_trigger.sgml
index becd31bcad..ece05a5992 100644
--- a/doc/src/sgml/ref/create_event_trigger.sgml
+++ b/doc/src/sgml/ref/create_event_trigger.sgml
@@ -33,11 +33,12 @@ CREATE EVENT TRIGGER <replaceable class="parameter">name</replaceable>
 
   <para>
    <command>CREATE EVENT TRIGGER</command> creates a new event trigger.
-   Whenever the designated event occurs and the <literal>WHEN</literal> condition
-   associated with the trigger, if any, is satisfied, the trigger function
-   will be executed.  For a general introduction to event triggers, see
-   <xref linkend="event-triggers"/>.  The user who creates an event trigger
-   becomes its owner.
+   Whenever the designated event occurs, the trigger function will be executed
+   if the <literal>WHEN</literal> condition associated with the trigger, if
+   any, is satisfied, and if the owner of the trigger is a direct or indirect
+   member of the role which performed the event.  For a general introduction to
+   event triggers, see <xref linkend="event-triggers"/>.  The user who creates
+   an event trigger becomes its owner.
   </para>
  </refsect1>
 
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 93e211cecf..13db569775 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -612,8 +612,13 @@ EventTriggerCommonSetup(Node *parsetree,
 
 		if (filter_event_trigger(tag, item))
 		{
-			/* We must plan to fire this trigger. */
-			runlist = lappend_oid(runlist, item->fnoid);
+			/*
+			 * We must plan to fire this trigger only if the event trigger
+			 * owner is a member of the current role, else the trigger owner
+			 * can execute with privilege it could not do directly.
+			 */
+			if (is_member_of_role(item->fnowner, GetUserId()))
+				runlist = lappend_oid(runlist, item->fnoid);
 		}
 	}
 
diff --git a/src/backend/utils/cache/evtcache.c b/src/backend/utils/cache/evtcache.c
index 460b720a65..ab86fcfa31 100644
--- a/src/backend/utils/cache/evtcache.c
+++ b/src/backend/utils/cache/evtcache.c
@@ -173,6 +173,7 @@ BuildEventTriggerCache(void)
 		/* Allocate new cache item. */
 		item = palloc0(sizeof(EventTriggerCacheItem));
 		item->fnoid = form->evtfoid;
+		item->fnowner = form->evtowner;
 		item->enabled = form->evtenabled;
 
 		/* Decode and sort tags array. */
diff --git a/src/include/utils/evtcache.h b/src/include/utils/evtcache.h
index 58ddb71cb1..1e968129c6 100644
--- a/src/include/utils/evtcache.h
+++ b/src/include/utils/evtcache.h
@@ -28,6 +28,7 @@ typedef enum
 typedef struct
 {
 	Oid			fnoid;			/* function to be called */
+	Oid			fnowner;		/* event trigger owner */
 	char		enabled;		/* as SESSION_REPLICATION_ROLE_* */
 	Bitmapset  *tagset;			/* command tags, or NULL if empty */
 } EventTriggerCacheItem;
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index d56c75de84..45215a622a 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -29,6 +29,23 @@ ERROR:  unrecognized event name "elephant_bootstrap"
 -- OK
 create event trigger regress_event_trigger on ddl_command_start
    execute procedure test_event_trigger();
+create role test_evt_role1 nosuperuser;
+create role test_evt_role2 nosuperuser;
+alter event trigger regress_event_trigger owner to test_evt_role1;
+set session authorization test_evt_role1;
+-- OK, should fire test_event_trigger
+create table test_evt_table1 (col text);
+NOTICE:  test_event_trigger: ddl_command_start CREATE TABLE
+reset session authorization;
+set session authorization test_evt_role2;
+-- OK, should bypass test_event_trigger
+create table test_evt_table2 (col text);
+grant test_evt_role2 to test_evt_role1;
+-- Ok, should fire test_event_trigger now
+create table test_evt_table3 (col text);
+NOTICE:  test_event_trigger: ddl_command_start CREATE TABLE
+reset session authorization;
+alter event trigger regress_event_trigger owner to current_user;
 -- OK
 create event trigger regress_event_trigger_end on ddl_command_end
    execute function test_event_trigger();
diff --git a/src/test/regress/sql/event_trigger.sql b/src/test/regress/sql/event_trigger.sql
index ef79b1059d..839dfd6db9 100644
--- a/src/test/regress/sql/event_trigger.sql
+++ b/src/test/regress/sql/event_trigger.sql
@@ -29,6 +29,27 @@ create event trigger regress_event_trigger on elephant_bootstrap
 create event trigger regress_event_trigger on ddl_command_start
    execute procedure test_event_trigger();
 
+create role test_evt_role1 nosuperuser;
+create role test_evt_role2 nosuperuser;
+
+alter event trigger regress_event_trigger owner to test_evt_role1;
+
+set session authorization test_evt_role1;
+-- OK, should fire test_event_trigger
+create table test_evt_table1 (col text);
+reset session authorization;
+
+set session authorization test_evt_role2;
+-- OK, should bypass test_event_trigger
+create table test_evt_table2 (col text);
+
+grant test_evt_role2 to test_evt_role1;
+-- Ok, should fire test_event_trigger now
+create table test_evt_table3 (col text);
+
+reset session authorization;
+alter event trigger regress_event_trigger owner to current_user;
+
 -- OK
 create event trigger regress_event_trigger_end on ddl_command_end
    execute function test_event_trigger();
-- 
2.21.1 (Apple Git-122.3)

v5-0008-Handle-non-superuser-subscription-owners-sensibly.patchapplication/octet-stream; name=v5-0008-Handle-non-superuser-subscription-owners-sensibly.patch; x-unix-mode=0644Download
From 3ff199bc5a9c22e05ff0bb8b9227933217a26553 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Wed, 28 Jul 2021 09:49:56 -0700
Subject: [PATCH v5 08/12] Handle non-superuser subscription owners sensibly

Stop pretending that subscriptions are always owned by superusers
and instead fix security problems that arise as a consequence of
them not being superuser.  Specifically, disallow a non-superuser
changing the connection, the list of publications, or the options
for their subscription.

The prior behavior violated the principle of least surprise,
allowing a non-superuser in possession of a subscription to change
all aspects of the subscription, connecting it to a different server
and subscribing a different set of publications, effectively
amounting to a non-superuser creating a new subscription.

The new behavior restricts the non-superuser owner to enabling,
disabling, refreshing, renaming, and further assigning ownership of
the subscription.
---
 doc/src/sgml/ref/alter_subscription.sgml   | 11 ++++-
 src/backend/commands/subscriptioncmds.c    | 20 +++++++++
 src/test/regress/expected/subscription.out | 51 ++++++++++++++++++++++
 src/test/regress/sql/subscription.sql      | 35 +++++++++++++++
 4 files changed, 115 insertions(+), 2 deletions(-)

diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml
index a6f994450d..1cf2bee0a8 100644
--- a/doc/src/sgml/ref/alter_subscription.sgml
+++ b/doc/src/sgml/ref/alter_subscription.sgml
@@ -47,8 +47,6 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
    You must own the subscription to use <command>ALTER SUBSCRIPTION</command>.
    To alter the owner, you must also be a direct or indirect member of the
    new owning role. The new owner has to be a superuser.
-   (Currently, all subscription owners must be superusers, so the owner checks
-   will be bypassed in practice.  But this might change in the future.)
   </para>
   
   <para>
@@ -96,6 +94,9 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
       <xref linkend="sql-createsubscription"/>.  See there for more
       information.
      </para>
+     <para>
+      Only superusers may change the connection property.
+     </para>
     </listitem>
    </varlistentry>
 
@@ -137,6 +138,9 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
       under <literal>REFRESH PUBLICATION</literal> may be specified,
       except in the case of <literal>DROP PUBLICATION</literal>.
      </para>
+     <para>
+      Only superusers may change the list of subscribed publications.
+     </para>
     </listitem>
    </varlistentry>
 
@@ -202,6 +206,9 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
       <literal>binary</literal>, and
       <literal>streaming</literal>.
      </para>
+     <para>
+      Only superusers may alter subscription parameters.
+     </para>
     </listitem>
    </varlistentry>
 
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 5157f44058..24364544bd 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -868,6 +868,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 	{
 		case ALTER_SUBSCRIPTION_OPTIONS:
 			{
+				if (!superuser())
+					ereport(ERROR,
+							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+							 errmsg("must be superuser to alter the options for a subscription")));
+
 				supported_opts = (SUBOPT_SLOT_NAME |
 								  SUBOPT_SYNCHRONOUS_COMMIT | SUBOPT_BINARY |
 								  SUBOPT_STREAMING);
@@ -946,6 +951,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 			}
 
 		case ALTER_SUBSCRIPTION_CONNECTION:
+			if (!superuser())
+				ereport(ERROR,
+						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+						 errmsg("must be superuser to alter the connection for a subscription")));
+
 			/* Load the library providing us libpq calls. */
 			load_file("libpqwalreceiver", false);
 			/* Check the connection info string. */
@@ -959,6 +969,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 
 		case ALTER_SUBSCRIPTION_SET_PUBLICATION:
 			{
+				if (!superuser())
+					ereport(ERROR,
+							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+							 errmsg("must be superuser to alter publications for a subscription")));
+
 				supported_opts = SUBOPT_COPY_DATA | SUBOPT_REFRESH;
 				parse_subscription_options(pstate, stmt->options,
 										   supported_opts, &opts);
@@ -1006,6 +1021,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 				List	   *publist;
 				bool		isadd = stmt->kind == ALTER_SUBSCRIPTION_ADD_PUBLICATION;
 
+				if (!superuser())
+					ereport(ERROR,
+							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+							 errmsg("must be superuser to alter publications for a subscription")));
+
 				supported_opts = SUBOPT_REFRESH;
 				if (isadd)
 					supported_opts |= SUBOPT_COPY_DATA;
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index 77b4437b69..f61096bf89 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -144,6 +144,57 @@ HINT:  The owner of a subscription must be a superuser.
 ALTER ROLE regress_subscription_user2 SUPERUSER;
 -- now it works
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
+-- revoke superuser from new owner
+ALTER ROLE regress_subscription_user2 NOSUPERUSER;
+SET SESSION AUTHORIZATION regress_subscription_user2;
+-- fail - non-superuser owner cannot change connection parameter
+ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
+ERROR:  must be superuser to alter the connection for a subscription
+-- fail - non-superuser owner cannot alter the publications list
+ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION somepub;
+ERROR:  must be superuser to alter publications for a subscription
+ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION otherpub;
+ERROR:  must be superuser to alter publications for a subscription
+ALTER SUBSCRIPTION regress_testsub SET PUBLICATION somepub, otherpub;
+ERROR:  must be superuser to alter publications for a subscription
+-- fail - non-superuser owner cannot change subscription parameters
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = true);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = false);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = true);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = false);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (slot_name = 'somethingelse');
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = local);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_write);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_apply);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (binary = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (binary = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (connect = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (connect = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (streaming = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (streaming = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = off);
+ERROR:  must be superuser to alter the options for a subscription
+SET SESSION AUTHORIZATION 'regress_subscription_user';
 -- fail - cannot do DROP SUBSCRIPTION inside transaction block with slot name
 BEGIN;
 DROP SUBSCRIPTION regress_testsub;
diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql
index d42104c191..863217f298 100644
--- a/src/test/regress/sql/subscription.sql
+++ b/src/test/regress/sql/subscription.sql
@@ -105,6 +105,41 @@ ALTER ROLE regress_subscription_user2 SUPERUSER;
 -- now it works
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
 
+-- revoke superuser from new owner
+ALTER ROLE regress_subscription_user2 NOSUPERUSER;
+
+SET SESSION AUTHORIZATION regress_subscription_user2;
+
+-- fail - non-superuser owner cannot change connection parameter
+ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
+
+-- fail - non-superuser owner cannot alter the publications list
+ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION somepub;
+ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION otherpub;
+ALTER SUBSCRIPTION regress_testsub SET PUBLICATION somepub, otherpub;
+
+-- fail - non-superuser owner cannot change subscription parameters
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = true);
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = false);
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = true);
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = false);
+ALTER SUBSCRIPTION regress_testsub SET (slot_name = 'somethingelse');
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = on);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = off);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = local);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_write);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_apply);
+ALTER SUBSCRIPTION regress_testsub SET (binary = on);
+ALTER SUBSCRIPTION regress_testsub SET (binary = off);
+ALTER SUBSCRIPTION regress_testsub SET (connect = on);
+ALTER SUBSCRIPTION regress_testsub SET (connect = off);
+ALTER SUBSCRIPTION regress_testsub SET (streaming = on);
+ALTER SUBSCRIPTION regress_testsub SET (streaming = off);
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = on);
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = off);
+
+SET SESSION AUTHORIZATION 'regress_subscription_user';
+
 -- fail - cannot do DROP SUBSCRIPTION inside transaction block with slot name
 BEGIN;
 DROP SUBSCRIPTION regress_testsub;
-- 
2.21.1 (Apple Git-122.3)

v5-0009-Allow-subscription-ownership-by-non-superusers.patchapplication/octet-stream; name=v5-0009-Allow-subscription-ownership-by-non-superusers.patch; x-unix-mode=0644Download
From 4ed163fad0e68f93b020159b1aed00cb65e3e0d1 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 29 Jul 2021 11:57:20 -0700
Subject: [PATCH v5 09/12] Allow subscription ownership by non-superusers

Non-superusers can already end up owning subscriptions if superuser
is revoked from a subscription owner, so quit the pretense and
simply allow the ownership transfer overtly by ALTER SUBSCRIPTION.

The prior situation did more to give a false sense that
subscriptions would never be owned by non-superusers than it did to
actually prevent that scenario from arising.
---
 doc/src/sgml/ref/alter_subscription.sgml   |  2 +-
 src/backend/commands/subscriptioncmds.c    |  9 ++-------
 src/test/regress/expected/subscription.out | 12 ++++--------
 src/test/regress/sql/subscription.sql      | 11 ++++-------
 4 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml
index 1cf2bee0a8..4c4b79df3d 100644
--- a/doc/src/sgml/ref/alter_subscription.sgml
+++ b/doc/src/sgml/ref/alter_subscription.sgml
@@ -46,7 +46,7 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
   <para>
    You must own the subscription to use <command>ALTER SUBSCRIPTION</command>.
    To alter the owner, you must also be a direct or indirect member of the
-   new owning role. The new owner has to be a superuser.
+   new owning role.
   </para>
   
   <para>
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 24364544bd..eacb1a4a00 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -1479,13 +1479,8 @@ AlterSubscriptionOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   NameStr(form->subname));
 
-	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("permission denied to change owner of subscription \"%s\"",
-						NameStr(form->subname)),
-				 errhint("The owner of a subscription must be a superuser.")));
+	/* Must be able to assign ownership to the target role */
+	check_is_member_of_role(GetUserId(), newOwnerId);
 
 	form->subowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index f61096bf89..520d5eee1b 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -137,16 +137,12 @@ HINT:  Available values: local, remote_write, remote_apply, on, off.
 
 -- rename back to keep the rest simple
 ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
--- fail - new owner must be superuser
+-- superuser can assign the ownership to a non-superuser
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
-ERROR:  permission denied to change owner of subscription "regress_testsub"
-HINT:  The owner of a subscription must be a superuser.
-ALTER ROLE regress_subscription_user2 SUPERUSER;
--- now it works
-ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
--- revoke superuser from new owner
-ALTER ROLE regress_subscription_user2 NOSUPERUSER;
 SET SESSION AUTHORIZATION regress_subscription_user2;
+-- fail - not a member of the target role
+ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user;
+ERROR:  must be member of role "regress_subscription_user"
 -- fail - non-superuser owner cannot change connection parameter
 ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
 ERROR:  must be superuser to alter the connection for a subscription
diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql
index 863217f298..e3d543d312 100644
--- a/src/test/regress/sql/subscription.sql
+++ b/src/test/regress/sql/subscription.sql
@@ -99,17 +99,14 @@ ALTER SUBSCRIPTION regress_testsub_foo SET (synchronous_commit = foobar);
 -- rename back to keep the rest simple
 ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
 
--- fail - new owner must be superuser
-ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
-ALTER ROLE regress_subscription_user2 SUPERUSER;
--- now it works
+-- superuser can assign the ownership to a non-superuser
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
 
--- revoke superuser from new owner
-ALTER ROLE regress_subscription_user2 NOSUPERUSER;
-
 SET SESSION AUTHORIZATION regress_subscription_user2;
 
+-- fail - not a member of the target role
+ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user;
+
 -- fail - non-superuser owner cannot change connection parameter
 ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
 
-- 
2.21.1 (Apple Git-122.3)

v5-0010-Respect-permissions-within-logical-replication.patchapplication/octet-stream; name=v5-0010-Respect-permissions-within-logical-replication.patch; x-unix-mode=0644Download
From a0576815d336dbca80e4b750a37edba6113e796c Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 29 Jul 2021 14:57:29 -0700
Subject: [PATCH v5 10/12] Respect permissions within logical replication

Prevent logical replication workers from performing insert, update,
delete, truncate, or copy commands on tables unless the subscription
owner has permission to do so.
---
 doc/src/sgml/logical-replication.sgml       |  49 +++-
 src/backend/replication/logical/tablesync.c |  13 +
 src/backend/replication/logical/worker.c    |  29 ++
 src/test/subscription/t/023_aclcheck.pl     | 297 ++++++++++++++++++++
 4 files changed, 375 insertions(+), 13 deletions(-)
 create mode 100644 src/test/subscription/t/023_aclcheck.pl

diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml
index 88646bc859..d6c7698847 100644
--- a/doc/src/sgml/logical-replication.sgml
+++ b/doc/src/sgml/logical-replication.sgml
@@ -330,6 +330,15 @@
    will simply be skipped.
   </para>
 
+  <para>
+   Logical replication operations are performed with the privileges of the role
+   which owns the subscription.  Only superusers may create subscriptions, but
+   if the ownership of the subscription is transferred, or if the owner
+   subsequently has superuser privileges revoked, permissions failures can
+   cause conflicts.  (Note that <productname>PostgreSQL</productname> prior to
+   version 15.0 did no permissions checking when applying changes.)
+  </para>
+
   <para>
    A conflict will produce an error and will stop the replication; it must be
    resolved manually by the user.  Details about the conflict can be found in
@@ -337,7 +346,7 @@
   </para>
 
   <para>
-   The resolution can be done either by changing data on the subscriber so
+   The resolution can be done either by changing data or permissions on the subscriber so
    that it does not conflict with the incoming change or by skipping the
    transaction that conflicts with the existing data.  The transaction can be
    skipped by calling the <link linkend="pg-replication-origin-advance">
@@ -530,13 +539,15 @@
 
   <para>
    A user able to modify the schema of subscriber-side tables can execute
-   arbitrary code as a superuser.  Limit ownership
-   and <literal>TRIGGER</literal> privilege on such tables to roles that
-   superusers trust.  Moreover, if untrusted users can create tables, use only
-   publications that list tables explicitly.  That is to say, create a
-   subscription <literal>FOR ALL TABLES</literal> only when superusers trust
-   every user permitted to create a non-temp table on the publisher or the
-   subscriber.
+   arbitrary code as the role which owns any subscription which modifies those
+   tables.  Limit ownership and <literal>TRIGGER</literal> privilege on such
+   tables to trusted roles.  Likewise, limit privileges of the subscription
+   owner to only the privileges needed to modify the tables that the
+   subscription should be able to change.  Moreover, if untrusted users can
+   create tables, use only publications that list tables explicitly.  That is
+   to say, create a subscription <literal>FOR ALL TABLES</literal> only when
+   superusers trust every user permitted to create a non-temp table on the
+   publisher or the subscriber.
   </para>
 
   <para>
@@ -569,18 +580,30 @@
   </para>
 
   <para>
-   To create a subscription, the user must be a superuser.
+   To create a subscription, the user must be a superuser.  The ownership can
+   subsequently be transferred or the role have superuser privilege removed.
   </para>
 
   <para>
    The subscription apply process will run in the local database with the
-   privileges of a superuser.
+   privileges of the subscription owner.
+  </para>
+
+  <para>
+   On the publisher, privileges are only checked once at the start of a
+   replication connection and are not re-checked as each change record is read.
   </para>
 
   <para>
-   Privileges are only checked once at the start of a replication connection.
-   They are not re-checked as each change record is read from the publisher,
-   nor are they re-checked for each change when applied.
+   On the subscriber, the subscription owner's privileges are re-checked for
+   each change record when applied, but beware that a change of ownership for a
+   subscription may not be noticed immediately by the replication workers.
+   Changes made on the publisher may be applied on the subscriber as
+   the old owner.  In such cases, the old owner's privileges will be the ones
+   that matter.  Worse still, it may be hard to predict when replication
+   workers will notice the new ownership.  Subscriptions created disabled and
+   only enabled after ownership has been changed will not be subject to this
+   race condition.
   </para>
  </sect1>
 
diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c
index f07983a43c..2400ef8c45 100644
--- a/src/backend/replication/logical/tablesync.c
+++ b/src/backend/replication/logical/tablesync.c
@@ -111,6 +111,7 @@
 #include "replication/origin.h"
 #include "storage/ipc.h"
 #include "storage/lmgr.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/memutils.h"
@@ -924,6 +925,7 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	char		relstate;
 	XLogRecPtr	relstate_lsn;
 	Relation	rel;
+	AclResult	aclresult;
 	WalRcvExecResult *res;
 	char		originname[NAMEDATALEN];
 	RepOriginId originid;
@@ -1042,6 +1044,17 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	 */
 	rel = table_open(MyLogicalRepWorker->relid, RowExclusiveLock);
 
+	/*
+	 * Check that our table sync worker has permission to insert into the
+	 * target table.
+	 */
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel), GetUserId(),
+								  ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->rd_rel->relkind),
+					   RelationGetRelationName(rel));
+
 	/*
 	 * Start a transaction in the remote node in REPEATABLE READ mode.  This
 	 * ensures that both the replication slot we create (see below) and the
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c
index 38b493e4f5..6ee37ceb90 100644
--- a/src/backend/replication/logical/worker.c
+++ b/src/backend/replication/logical/worker.c
@@ -179,6 +179,7 @@
 #include "storage/proc.h"
 #include "storage/procarray.h"
 #include "tcop/tcopprot.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/catcache.h"
 #include "utils/dynahash.h"
@@ -1569,6 +1570,7 @@ apply_handle_insert(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData newtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1591,6 +1593,12 @@ apply_handle_insert(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel), GetUserId(),
+								  ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Initialize the executor state. */
 	edata = create_edata_for_relation(rel);
@@ -1685,6 +1693,7 @@ apply_handle_update(StringInfo s)
 {
 	LogicalRepRelMapEntry *rel;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	LogicalRepTupleData oldtup;
@@ -1712,6 +1721,12 @@ apply_handle_update(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel), GetUserId(),
+								  ACL_UPDATE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Check if we can do the update. */
 	check_relation_updatable(rel);
@@ -1846,6 +1861,7 @@ apply_handle_delete(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData oldtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1868,6 +1884,12 @@ apply_handle_delete(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel), GetUserId(),
+								  ACL_DELETE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Check if we can do the delete. */
 	check_relation_updatable(rel);
@@ -2234,6 +2256,7 @@ apply_handle_truncate(StringInfo s)
 	{
 		LogicalRepRelId relid = lfirst_oid(lc);
 		LogicalRepRelMapEntry *rel;
+		AclResult	aclresult;
 
 		rel = logicalrep_rel_open(relid, lockmode);
 		if (!should_apply_changes_for_rel(rel))
@@ -2245,6 +2268,12 @@ apply_handle_truncate(StringInfo s)
 			logicalrep_rel_close(rel, lockmode);
 			continue;
 		}
+		aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel),
+									  GetUserId(), ACL_TRUNCATE);
+		if (aclresult != ACLCHECK_OK)
+			aclcheck_error(aclresult,
+						   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+						   get_rel_name(rel->localreloid));
 
 		remote_rels = lappend(remote_rels, rel);
 		rels = lappend(rels, rel->localrel);
diff --git a/src/test/subscription/t/023_aclcheck.pl b/src/test/subscription/t/023_aclcheck.pl
new file mode 100644
index 0000000000..c5450634e4
--- /dev/null
+++ b/src/test/subscription/t/023_aclcheck.pl
@@ -0,0 +1,297 @@
+# Copyright (c) 2021, PostgreSQL Global Development Group
+
+# This test checks that logical replication table sync workers and apply workers
+# respect privileges on database objects.
+#
+# We create a publisher node, a subscriber node, and a user named
+# 'replication_manager' which owns the publications and subscriptions but is
+# not a superuser.  If the database security surrounding logical replication is
+# working correctly, logical replication of data to the subscriber node will
+# fail or succeed depending on whether replication_manager has sufficient
+# privileges on the table involved.
+#
+
+use strict;
+use warnings;
+use PostgresNode;
+use TestLib;
+use Test::More tests => 15;
+use Time::HiRes qw(usleep);
+
+my ($cmd, $publisher, $subscriber);
+
+$publisher = PostgresNode->new('publisher');
+$publisher->init(allows_streaming => 'logical');
+
+$subscriber = PostgresNode->new('subscriber');
+$subscriber->init;
+
+$publisher->start;
+$subscriber->start;
+
+# Create identical schema structure on both nodes
+both(qq(
+	CREATE USER db_superuser WITH SUPERUSER;
+	CREATE USER replication_manager WITH NOSUPERUSER;
+
+	GRANT CREATE ON DATABASE postgres TO db_superuser;
+	GRANT CREATE ON DATABASE postgres TO replication_manager;
+
+	SET SESSION AUTHORIZATION db_superuser;
+
+	-- Create a table owned by db_superuser with privileges granted to
+	-- replication_manager
+	CREATE TABLE shared_tbl (i INTEGER);
+	CREATE UNIQUE INDEX shared_tbl_idx ON shared_tbl(i);
+	ALTER TABLE shared_tbl REPLICA IDENTITY FULL;
+	REVOKE ALL PRIVILEGES ON TABLE shared_tbl FROM PUBLIC;
+	GRANT INSERT, UPDATE, DELETE, TRUNCATE
+		ON shared_tbl
+		TO replication_manager;
+
+	-- Create a table owned by db_superuser without privileges granted to
+	-- anybody else
+	CREATE TABLE private_tbl (i INTEGER);
+	CREATE UNIQUE INDEX private_tbl_idx ON private_tbl(i);
+	ALTER TABLE private_tbl REPLICA IDENTITY FULL;
+	REVOKE ALL PRIVILEGES ON TABLE private_tbl FROM PUBLIC;
+
+	RESET SESSION AUTHORIZATION;
+));
+
+# Check that replication_manager can replicate data for the shared table
+# for which replication_manager has privileges.
+create_publication_and_subscription("shared_tbl");
+publish_and_wait(
+	command_to_execute_on_publisher =>
+		"INSERT INTO shared_tbl values (generate_series(1,10))",
+	subscription_to_wait_for_catchup =>
+		"shared_tbl_sub");
+expect_subscriber_table_contents(
+	table => "shared_tbl",
+	new_minimum_column_value => 1,
+	new_maximum_column_value => 10,
+	new_row_count => 10,
+	testname => "replication of initial data with permissions");
+publish_and_wait(
+	command_to_execute_on_publisher =>
+		"DELETE FROM shared_tbl",
+	subscription_to_wait_for_catchup =>
+		"shared_tbl_sub");
+expect_subscriber_table_contents(
+	table => "shared_tbl",
+	new_minimum_column_value => '',
+	new_maximum_column_value => '',
+	new_row_count => 0,
+	testname => "replication of DELETEs with permissions");
+publish_and_wait(
+	command_to_execute_on_publisher =>
+		"INSERT INTO shared_tbl values (generate_series(11,20))",
+	subscription_to_wait_for_catchup =>
+		"shared_tbl_sub");
+expect_subscriber_table_contents(
+	table => "shared_tbl",
+	new_minimum_column_value => 11,
+	new_maximum_column_value => 20,
+	new_row_count => 10,
+	testname => "replication of INSERTs with permissions");
+publish_and_wait(
+	command_to_execute_on_publisher =>
+		"UPDATE shared_tbl SET i = i + 10",
+	subscription_to_wait_for_catchup =>
+		"shared_tbl_sub");
+expect_subscriber_table_contents(
+	table => "shared_tbl",
+	new_minimum_column_value => 21,
+	new_maximum_column_value => 30,
+	new_row_count => 10,
+	testname => "replication of UPDATEs with permissions");
+publish_and_wait(
+	command_to_execute_on_publisher =>
+		"TRUNCATE shared_tbl",
+	subscription_to_wait_for_catchup =>
+		"shared_tbl_sub");
+expect_subscriber_table_contents(
+	table => "shared_tbl",
+	new_minimum_column_value => '',
+	new_maximum_column_value => '',
+	new_row_count => 0,
+	testname => "replication of TRUNCATEs with permissions");
+
+# Check that replication_manager cannot replicate data for the private table
+# for which replication_manager has no privileges, but that granting privileges
+# on the table will clear the error and allow the data to replicate.
+create_publication_and_subscription("private_tbl");
+$publisher->safe_psql(
+	'postgres',
+	"INSERT INTO private_tbl values (generate_series(1,10))");
+expect_and_clear_subscriber_side_error(
+	table => "private_tbl",
+	new_minimum_column_value => 1,
+	new_maximum_column_value => 10,
+	new_row_count => 10,
+	testname => "replication of initial data for private_tbl");
+
+$publisher->safe_psql(
+	'postgres',
+	"DELETE FROM private_tbl");
+expect_and_clear_subscriber_side_error(
+	table => "private_tbl",
+	new_minimum_column_value => '',
+	new_maximum_column_value => '',
+	new_row_count => 0,
+	testname => "replication of DELETEs for private_tbl");
+
+$publisher->safe_psql(
+	'postgres',
+	"INSERT INTO private_tbl values (generate_series(11,20))");
+expect_and_clear_subscriber_side_error(
+	table => "private_tbl",
+	new_minimum_column_value => 11,
+	new_maximum_column_value => 20,
+	new_row_count => 10,
+	testname => "replication of INSERTs for private_tbl");
+
+$publisher->safe_psql(
+	'postgres',
+	"UPDATE private_tbl SET i = i + 10");
+expect_and_clear_subscriber_side_error(
+	table => "private_tbl",
+	new_minimum_column_value => 21,
+	new_maximum_column_value => 30,
+	new_row_count => 10,
+	testname => "replication of UPDATEs for private_tbl");
+
+$publisher->safe_psql(
+	'postgres',
+	"TRUNCATE private_tbl");
+expect_and_clear_subscriber_side_error(
+	table => "private_tbl",
+	new_minimum_column_value => '',
+	new_maximum_column_value => '',
+	new_row_count => 0,
+	testname => "replication of TRUNCATEs for private_tbl");
+
+sub both
+{
+	my ($cmd) = @_;
+	$publisher->safe_psql('postgres', $cmd);
+	$subscriber->safe_psql('postgres', $cmd);
+}
+
+sub create_publication_and_subscription
+{
+	my ($table) = @_;
+
+	my $publication = "${table}_pub";
+	my $subscription = "${table}_sub";
+
+	$publisher->safe_psql('postgres', qq(
+		CREATE PUBLICATION $publication FOR TABLE $table;
+		ALTER PUBLICATION $publication OWNER TO replication_manager;));
+	my $publisher_connstr = $publisher->connstr . ' dbname=postgres';
+
+	# If the subscription were created enabled (the default) rather than
+	# disabled, a race condition with the logical replication launcher would
+	# exist.  If the launcher were to read the subscription entry before the
+	# ownership were reassigned, it could launch the tablesync worker as the
+	# database owner rather than as the replication_manager.  This is not
+	# theoretical, but observed to occur.
+	$subscriber->safe_psql('postgres', qq(
+		CREATE SUBSCRIPTION $subscription
+			CONNECTION '$publisher_connstr'
+			PUBLICATION $publication
+			WITH (enabled = false);
+		ALTER SUBSCRIPTION $subscription OWNER TO replication_manager;
+		ALTER SUBSCRIPTION $subscription ENABLE;
+		));
+}
+
+sub publish_and_wait
+{
+	my %params = @_;
+
+	$publisher->safe_psql(
+		'postgres',
+		$params{command_to_execute_on_publisher});
+	$publisher->wait_for_catchup(
+		$params{subscription_to_wait_for_catchup});
+}
+
+sub query_subscriber_values
+{
+	my %params = @_;
+	return $subscriber->safe_psql('postgres',
+		qq(SELECT min(i), max(i), count(i) FROM $params{table}));
+}
+
+sub expected_subscriber_values
+{
+	my %params = @_;
+
+	return join('|',
+				"$params{new_minimum_column_value}",
+				"$params{new_maximum_column_value}",
+				"$params{new_row_count}");
+}
+
+sub expect_subscriber_table_contents
+{
+	my %params = @_;
+
+	is (query_subscriber_values(%params),
+		expected_subscriber_values(%params),
+		$params{testname});
+}
+
+sub expect_and_clear_subscriber_side_error
+{
+	my %params = @_;
+
+	# We cannot merely call wait_for_catchup(), as the subscriber side error we
+	# expect will prevent it from ever happening.  Instead, we must poll the
+	# subscriber log file for the error message.  On the other hand, if the
+	# error does not happen, we'll hang unless we also periodically check for
+	# the new data to arrive.
+	my $retries_remaining = 30;
+	my $expected = expected_subscriber_values(%params);
+	my $failure_re = qr/ERROR:  permission denied for table $params{table}/;
+	my ($actual, $contents);
+	do
+	{
+		$actual = query_subscriber_values(%params);
+		$contents = TestLib::slurp_file($subscriber->logfile);
+	}
+	while ($actual ne $expected && $contents !~ /$failure_re/ms &&
+		   defined(usleep(10000)) && $retries_remaining--);
+	BAIL_OUT("Subscription for $params{table} neither failed nor caught up!")
+		unless $retries_remaining;
+	like($contents, $failure_re, $params{testname});
+
+	# To clear the data, we must give the replication manager permission to
+	# write the new data to the table.  But since the lsn for the new data
+	# has already been attempted and failed, we perform a meaningless update
+	# of the table on the publisher side to move the lsn.
+	both("GRANT ALL PRIVILEGES ON $params{table} TO replication_manager");
+	$retries_remaining = 30;
+	do
+	{
+		$publisher->safe_psql('postgres',
+			qq(INSERT INTO $params{table} (i) VALUES (-1)));
+		$publisher->safe_psql('postgres',
+			qq(DELETE FROM $params{table} WHERE i = -1));
+		$actual = query_subscriber_values(%params);
+	}
+	while ($actual ne $expected && defined(usleep(10000)) &&
+		   $retries_remaining--);
+
+	$params{testname} .= " cleared error";
+	expect_subscriber_table_contents(%params);
+
+	# Restore replication_manager's permissions and clear out the logfile failure
+	# so that subsequent tests can run properly.
+	both("REVOKE ALL PRIVILEGES ON $params{table} FROM replication_manager");
+	$subscriber->stop;
+	unlink $subscriber->logfile() or die "Cannot remove subscriber logfile: $!";
+	$subscriber->start;
+}
-- 
2.21.1 (Apple Git-122.3)

v5-0011-BUGFIX.patchapplication/octet-stream; name=v5-0011-BUGFIX.patch; x-unix-mode=0644Download
From 082921f1633aa55d68d6a0b084882f4a6869cef4 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Wed, 4 Aug 2021 14:52:49 -0700
Subject: [PATCH v5 11/12] BUGFIX

This applies the unrelated patch:
	"Fix cache lookup error in ownership check"
which has been posted to the -hackers list but has not yet been
committed.  Without this patch, the tests we're about to write have
cache lookup failures in them, which are annoying, but also make the
results nondeterministic because the error text contains variable
Oid values.

If this patch fails to apply, great!  That probably means the bugfix
has been committed and this patch is no longer needed.

Discussion: https://www.postgresql.org/message-id/1F238937-7CC2-4703-A1B1-6DC225B8978A%40enterprisedb.com
---
 src/backend/catalog/objectaddress.c     |  3 ++-
 src/test/regress/expected/stats_ext.out | 11 +++++++++++
 src/test/regress/sql/stats_ext.sql      |  9 +++++++++
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 9882e549c4..deaabaeae9 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -2571,7 +2571,8 @@ check_object_ownership(Oid roleid, ObjectType objtype, ObjectAddress address,
 			break;
 		case OBJECT_STATISTIC_EXT:
 			if (!pg_statistics_object_ownercheck(address.objectId, roleid))
-				aclcheck_error_type(ACLCHECK_NOT_OWNER, address.objectId);
+				aclcheck_error(ACLCHECK_NOT_OWNER, objtype,
+							   NameListToString(castNode(List, object)));
 			break;
 		default:
 			elog(ERROR, "unrecognized object type: %d",
diff --git a/src/test/regress/expected/stats_ext.out b/src/test/regress/expected/stats_ext.out
index 7fb54de53d..90684a1454 100644
--- a/src/test/regress/expected/stats_ext.out
+++ b/src/test/regress/expected/stats_ext.out
@@ -67,6 +67,17 @@ DROP TABLE ext_stats_test;
 -- Ensure stats are dropped sanely, and test IF NOT EXISTS while at it
 CREATE TABLE ab1 (a INTEGER, b INTEGER, c INTEGER);
 CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1;
+COMMENT ON STATISTICS ab1_a_b_stats IS 'new comment';
+CREATE ROLE temp_role;
+SET SESSION AUTHORIZATION temp_role;
+COMMENT ON STATISTICS ab1_a_b_stats IS 'changed comment';
+ERROR:  must be owner of statistics object ab1_a_b_stats
+DROP STATISTICS ab1_a_b_stats;
+ERROR:  must be owner of statistics object ab1_a_b_stats
+ALTER STATISTICS ab1_a_b_stats RENAME TO ab1_a_b_stats_new;
+ERROR:  must be owner of statistics object ab1_a_b_stats
+RESET SESSION AUTHORIZATION;
+DROP ROLE temp_role;
 CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1;
 NOTICE:  statistics object "ab1_a_b_stats" already exists, skipping
 DROP STATISTICS ab1_a_b_stats;
diff --git a/src/test/regress/sql/stats_ext.sql b/src/test/regress/sql/stats_ext.sql
index d563c4654c..57396184c1 100644
--- a/src/test/regress/sql/stats_ext.sql
+++ b/src/test/regress/sql/stats_ext.sql
@@ -48,6 +48,15 @@ DROP TABLE ext_stats_test;
 -- Ensure stats are dropped sanely, and test IF NOT EXISTS while at it
 CREATE TABLE ab1 (a INTEGER, b INTEGER, c INTEGER);
 CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1;
+COMMENT ON STATISTICS ab1_a_b_stats IS 'new comment';
+CREATE ROLE temp_role;
+SET SESSION AUTHORIZATION temp_role;
+COMMENT ON STATISTICS ab1_a_b_stats IS 'changed comment';
+DROP STATISTICS ab1_a_b_stats;
+ALTER STATISTICS ab1_a_b_stats RENAME TO ab1_a_b_stats_new;
+RESET SESSION AUTHORIZATION;
+DROP ROLE temp_role;
+
 CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1;
 DROP STATISTICS ab1_a_b_stats;
 
-- 
2.21.1 (Apple Git-122.3)

v5-0012-Create-new-role-pg_manage_database_objects.patchapplication/octet-stream; name=v5-0012-Create-new-role-pg_manage_database_objects.patch; x-unix-mode=0644Download
From e1b4a1bbb7a9018d6a00a31d8558bb66617acb3f Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 19 Aug 2021 12:05:19 -0700
Subject: [PATCH v5 12/12] Create new role pg_manage_database_objects

Add a new role to the system with privileges to do anything to an
object that the object owner could do, so long as the object is not
owned by a superuser.  This latter restriction is to avoid privilege
escalation attacks.
---
 doc/src/sgml/user-manag.sgml            |   11 +
 src/backend/catalog/aclchk.c            |   47 +-
 src/backend/catalog/pg_type.c           |    4 +-
 src/backend/commands/alter.c            |   12 +-
 src/backend/commands/dbcommands.c       |    6 +-
 src/backend/commands/event_trigger.c    |    2 +-
 src/backend/commands/foreigncmds.c      |    4 +-
 src/backend/commands/publicationcmds.c  |    4 +-
 src/backend/commands/schemacmds.c       |    6 +-
 src/backend/commands/subscriptioncmds.c |    2 +-
 src/backend/commands/tablecmds.c        |    4 +-
 src/backend/commands/typecmds.c         |    4 +-
 src/backend/commands/user.c             |    6 +-
 src/backend/utils/adt/acl.c             |   56 +-
 src/include/catalog/pg_authid.dat       |    5 +
 src/include/utils/acl.h                 |    3 +
 src/test/regress/expected/role_priv.out | 1202 +++++++++++++++++++++++
 src/test/regress/parallel_schedule      |    2 +-
 src/test/regress/sql/role_priv.sql      |  879 +++++++++++++++++
 19 files changed, 2206 insertions(+), 53 deletions(-)
 create mode 100644 src/test/regress/expected/role_priv.out
 create mode 100644 src/test/regress/sql/role_priv.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 5fd8a5d2f7..596cf7ad7e 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -597,6 +597,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_logging_settings</entry>
        <entry>Allow changing settings which control logging behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_database_objects</entry>
+       <entry>Allow altering database objects which the role does not own.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -649,6 +653,13 @@ DROP ROLE doomed_role;
   server.
   </para>
 
+  <para>
+  The <literal>pg_manage_database_objects</literal> role is intended to allow
+  administrators to have trusted, but non-superuser, roles to perform actions
+  on objects with the same privileges as the object owners, so long as the
+  objects are not owned by superusers.
+  </para>
+
   <para>
   Care should be taken when granting these roles to ensure they are only used where
   needed and with the understanding that these roles grant access to privileged
diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 89792b154e..6c127333e9 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -3958,8 +3958,7 @@ pg_database_aclmask(Oid db_oid, Oid roleid,
 	Acl		   *acl;
 	Oid			ownerId;
 
-	/* Superusers bypass all permission checking. */
-	if (superuser_arg(roleid))
+	if (has_privs_of_role(roleid, ROLE_PG_MANAGE_DATABASE_OBJECTS))
 		return mask;
 
 	/*
@@ -4834,7 +4833,7 @@ pg_class_ownercheck(Oid class_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -4860,7 +4859,7 @@ pg_type_ownercheck(Oid type_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -4886,7 +4885,7 @@ pg_oper_ownercheck(Oid oper_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -4912,7 +4911,7 @@ pg_proc_ownercheck(Oid proc_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -4938,7 +4937,7 @@ pg_language_ownercheck(Oid lan_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -4984,7 +4983,7 @@ pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid)
 	systable_endscan(scan);
 	table_close(pg_lo_meta, AccessShareLock);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5010,7 +5009,7 @@ pg_namespace_ownercheck(Oid nsp_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5037,7 +5036,7 @@ pg_tablespace_ownercheck(Oid spc_oid, Oid roleid)
 
 	ReleaseSysCache(spctuple);
 
-	return has_privs_of_role(roleid, spcowner);
+	return may_manage_roles_objects(roleid, spcowner);
 }
 
 /*
@@ -5064,7 +5063,7 @@ pg_opclass_ownercheck(Oid opc_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5091,7 +5090,7 @@ pg_opfamily_ownercheck(Oid opf_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5118,7 +5117,7 @@ pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5145,7 +5144,7 @@ pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5172,7 +5171,7 @@ pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5199,7 +5198,7 @@ pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5226,7 +5225,7 @@ pg_event_trigger_ownercheck(Oid et_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5252,7 +5251,7 @@ pg_database_ownercheck(Oid db_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, dba);
+	return may_manage_roles_objects(roleid, dba);
 }
 
 /*
@@ -5278,7 +5277,7 @@ pg_collation_ownercheck(Oid coll_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5304,7 +5303,7 @@ pg_conversion_ownercheck(Oid conv_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5346,7 +5345,7 @@ pg_extension_ownercheck(Oid ext_oid, Oid roleid)
 	systable_endscan(scan);
 	table_close(pg_extension, AccessShareLock);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5372,7 +5371,7 @@ pg_publication_ownercheck(Oid pub_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5398,7 +5397,7 @@ pg_subscription_ownercheck(Oid sub_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
@@ -5425,7 +5424,7 @@ pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid)
 
 	ReleaseSysCache(tuple);
 
-	return has_privs_of_role(roleid, ownerId);
+	return may_manage_roles_objects(roleid, ownerId);
 }
 
 /*
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index cdce22f394..f6cf776849 100644
--- a/src/backend/catalog/pg_type.c
+++ b/src/backend/catalog/pg_type.c
@@ -22,6 +22,7 @@
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaccess.h"
+#include "catalog/pg_authid.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
@@ -438,7 +439,8 @@ TypeCreate(Oid newTypeOid,
 		/*
 		 * shell type must have been created by same owner
 		 */
-		if (typform->typowner != ownerId)
+		if (typform->typowner != ownerId &&
+			!has_privs_of_role(ownerId, ROLE_PG_MANAGE_DATABASE_OBJECTS))
 			aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_TYPE, typeName);
 
 		/* trouble if caller wanted to force the OID */
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 29249498a9..0b33cc9c97 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -221,7 +221,7 @@ AlterObjectRename_internal(Relation rel, Oid objectId, const char *new_name)
 		Assert(!isnull);
 		ownerId = DatumGetObjectId(datum);
 
-		if (!has_privs_of_role(GetUserId(), DatumGetObjectId(ownerId)))
+		if (!may_manage_roles_objects(GetUserId(), DatumGetObjectId(ownerId)))
 			aclcheck_error(ACLCHECK_NOT_OWNER, get_object_type(classId, objectId),
 						   old_name);
 
@@ -749,7 +749,7 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
 		Assert(!isnull);
 		ownerId = DatumGetObjectId(owner);
 
-		if (!has_privs_of_role(GetUserId(), ownerId))
+		if (!may_manage_roles_objects(GetUserId(), ownerId))
 			aclcheck_error(ACLCHECK_NOT_OWNER, get_object_type(classId, objid),
 						   NameStr(*(DatumGetName(name))));
 
@@ -974,8 +974,8 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
 		/* Superusers can bypass permission checks */
 		if (!superuser())
 		{
-			/* must be owner */
-			if (!has_privs_of_role(GetUserId(), old_ownerId))
+			/* must be able to act as owner */
+			if (!may_manage_roles_objects(GetUserId(), old_ownerId))
 			{
 				char	   *objname;
 				char		namebuf[NAMEDATALEN];
@@ -995,8 +995,8 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
 				aclcheck_error(ACLCHECK_NOT_OWNER, get_object_type(classId, objectId),
 							   objname);
 			}
-			/* Must be able to become new owner */
-			check_is_member_of_role(GetUserId(), new_ownerId);
+			/* Must be able to act as new owner */
+			check_may_manage_roles_objects(GetUserId(), new_ownerId);
 
 			/* New owner must have CREATE privilege on namespace */
 			if (OidIsValid(namespaceId))
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 029fab48df..35d5419689 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -302,7 +302,7 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to create database")));
 
-	check_is_member_of_role(GetUserId(), datdba);
+	check_may_manage_roles_objects(GetUserId(), datdba);
 
 	/*
 	 * Lookup database (template) to be cloned, and obtain share lock on it.
@@ -1682,8 +1682,8 @@ AlterDatabaseOwner(const char *dbname, Oid newOwnerId)
 			aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_DATABASE,
 						   dbname);
 
-		/* Must be able to become new owner */
-		check_is_member_of_role(GetUserId(), newOwnerId);
+		/* Must be able to act as new owner */
+		check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 		/*
 		 * must have createdb rights
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 13db569775..e10261ec49 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -477,7 +477,7 @@ AlterEventTriggerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					   NameStr(form->evtname));
 
 	/* Must be able to assign ownership to the target role */
-	check_is_member_of_role(GetUserId(), newOwnerId);
+	check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 	form->evtowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c
index 9b71beb1d3..ed995b175c 100644
--- a/src/backend/commands/foreigncmds.c
+++ b/src/backend/commands/foreigncmds.c
@@ -362,8 +362,8 @@ AlterForeignServerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 				aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_FOREIGN_SERVER,
 							   NameStr(form->srvname));
 
-			/* Must be able to become new owner */
-			check_is_member_of_role(GetUserId(), newOwnerId);
+			/* Must be able to act as new owner */
+			check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 			/* New owner must have USAGE privilege on foreign-data wrapper */
 			aclresult = pg_foreign_data_wrapper_aclcheck(form->srvfdw, newOwnerId, ACL_USAGE);
diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c
index 8487eeb7e6..105414332c 100644
--- a/src/backend/commands/publicationcmds.c
+++ b/src/backend/commands/publicationcmds.c
@@ -687,8 +687,8 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 			aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_PUBLICATION,
 						   NameStr(form->pubname));
 
-		/* Must be able to become new owner */
-		check_is_member_of_role(GetUserId(), newOwnerId);
+		/* Must be able to act as new owner */
+		check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 		/* New owner must have CREATE privilege on database */
 		aclresult = pg_database_aclcheck(MyDatabaseId, newOwnerId, ACL_CREATE);
diff --git a/src/backend/commands/schemacmds.c b/src/backend/commands/schemacmds.c
index 6c6ab9ee34..901deccba9 100644
--- a/src/backend/commands/schemacmds.c
+++ b/src/backend/commands/schemacmds.c
@@ -96,7 +96,7 @@ CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString,
 		aclcheck_error(aclresult, OBJECT_DATABASE,
 					   get_database_name(MyDatabaseId));
 
-	check_is_member_of_role(saved_uid, owner_uid);
+	check_may_manage_roles_objects(saved_uid, owner_uid);
 
 	/* Additional check to protect reserved schema names */
 	if (!allowSystemTableMods && IsReservedName(schemaName))
@@ -357,8 +357,8 @@ AlterSchemaOwner_internal(HeapTuple tup, Relation rel, Oid newOwnerId)
 			aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SCHEMA,
 						   NameStr(nspForm->nspname));
 
-		/* Must be able to become new owner */
-		check_is_member_of_role(GetUserId(), newOwnerId);
+		/* Must be able to act as new owner */
+		check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 		/*
 		 * must have create-schema rights
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index eacb1a4a00..57666f30ba 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -1480,7 +1480,7 @@ AlterSubscriptionOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 					   NameStr(form->subname));
 
 	/* Must be able to assign ownership to the target role */
-	check_is_member_of_role(GetUserId(), newOwnerId);
+	check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 	form->subowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index a03077139d..34acf59039 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -13322,8 +13322,8 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lock
 					aclcheck_error(ACLCHECK_NOT_OWNER, get_relkind_objtype(get_rel_relkind(relationOid)),
 								   RelationGetRelationName(target_rel));
 
-				/* Must be able to become new owner */
-				check_is_member_of_role(GetUserId(), newOwnerId);
+				/* Must be able to act as new owner */
+				check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 				/* New owner must have CREATE privilege on namespace */
 				aclresult = pg_namespace_aclcheck(namespaceOid, newOwnerId,
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 6bdb1a1660..a8cb8ecb58 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -3748,8 +3748,8 @@ AlterTypeOwner(List *names, Oid newOwnerId, ObjectType objecttype)
 			if (!pg_type_ownercheck(typTup->oid, GetUserId()))
 				aclcheck_error_type(ACLCHECK_NOT_OWNER, typTup->oid);
 
-			/* Must be able to become new owner */
-			check_is_member_of_role(GetUserId(), newOwnerId);
+			/* Must be able to act as new owner */
+			check_may_manage_roles_objects(GetUserId(), newOwnerId);
 
 			/* New owner must have CREATE privilege on namespace */
 			aclresult = pg_namespace_aclcheck(typTup->typnamespace,
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index aa69821be4..3cd874b170 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -1320,7 +1320,7 @@ DropOwnedObjects(DropOwnedStmt *stmt)
 	{
 		Oid			roleid = lfirst_oid(cell);
 
-		if (!has_privs_of_role(GetUserId(), roleid))
+		if (!may_manage_roles_objects(GetUserId(), roleid))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("permission denied to drop objects")));
@@ -1347,7 +1347,7 @@ ReassignOwnedObjects(ReassignOwnedStmt *stmt)
 	{
 		Oid			roleid = lfirst_oid(cell);
 
-		if (!has_privs_of_role(GetUserId(), roleid))
+		if (!may_manage_roles_objects(GetUserId(), roleid))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("permission denied to reassign objects")));
@@ -1356,7 +1356,7 @@ ReassignOwnedObjects(ReassignOwnedStmt *stmt)
 	/* Must have privileges on the receiving side too */
 	newrole = get_rolespec_oid(stmt->newrole, false);
 
-	if (!has_privs_of_role(GetUserId(), newrole))
+	if (!may_manage_roles_objects(GetUserId(), newrole))
 		ereport(ERROR,
 				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 				 errmsg("permission denied to reassign objects")));
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index 67f8b29434..1a467d0370 100644
--- a/src/backend/utils/adt/acl.c
+++ b/src/backend/utils/adt/acl.c
@@ -1329,7 +1329,7 @@ aclmask(const Acl *acl, Oid roleid, Oid ownerId,
 
 	/* Owner always implicitly has all grant options */
 	if ((mask & ACLITEM_ALL_GOPTION_BITS) &&
-		has_privs_of_role(roleid, ownerId))
+		may_manage_roles_objects(roleid, ownerId))
 	{
 		result = mask & ACLITEM_ALL_GOPTION_BITS;
 		if ((how == ACLMASK_ALL) ? (result == mask) : (result != 0))
@@ -1372,7 +1372,7 @@ aclmask(const Acl *acl, Oid roleid, Oid ownerId,
 			continue;			/* already checked it */
 
 		if ((aidata->ai_privs & remaining) &&
-			has_privs_of_role(roleid, aidata->ai_grantee))
+			may_manage_roles_objects(roleid, aidata->ai_grantee))
 		{
 			result |= aidata->ai_privs & mask;
 			if ((how == ACLMASK_ALL) ? (result == mask) : (result != 0))
@@ -4859,6 +4859,43 @@ has_privs_of_role(Oid member, Oid role)
 						   role);
 }
 
+/*
+ * Does member have the privileges of role, or failing that, does member
+ * have the right to manage role's objects.
+ *
+ * Members of role pg_manage_database_objects may manage role's objects
+ * if and only if role is not a superuser.
+ */
+bool
+may_manage_roles_objects(Oid member, Oid role)
+{
+	List    *roles;
+
+	/* Fast path for simple case */
+	if (member == role)
+		return true;
+
+	/* Superusers have every privilege, so are part of every role */
+	if (superuser_arg(member))
+		return true;
+
+	/*
+	 * Find all the roles that member has the privileges of, including
+	 * multi-level recursion.
+	 */
+	roles = roles_is_member_of(member, ROLERECURSE_PRIVS, InvalidOid, NULL);
+
+	/* role may manage its own objects. */
+	if (list_member_oid(roles, role))
+		return true;
+
+	/* pg_manage_database_objects may manage non-superuser owned objects. */
+	if (!superuser_arg(role) &&
+		list_member_oid(roles, ROLE_PG_MANAGE_DATABASE_OBJECTS))
+		return true;
+
+	return false;
+}
 
 /*
  * Is member a member of role (directly or indirectly)?
@@ -4899,6 +4936,21 @@ check_is_member_of_role(Oid member, Oid role)
 						GetUserNameFromId(role, false))));
 }
 
+/*
+ * check_may_manage_roles_objects
+ *		may_manage_roles_objects with a standard permission-violation error if
+ *		not
+ */
+void
+check_may_manage_roles_objects(Oid member, Oid role)
+{
+	if (!may_manage_roles_objects(member, role))
+		ereport(ERROR,
+				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+				 errmsg("must be member of role \"%s\"",
+						GetUserNameFromId(role, false))));
+}
+
 /*
  * Is member a member of role, not considering superuserness?
  *
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 41d119f7b2..5bda6bc10f 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -99,5 +99,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9283', oid_symbol => 'ROLE_PG_MANAGE_DATABASE_OBJECTS',
+  rolname => 'pg_manage_database_objects', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h
index af771c901d..ddcbada55d 100644
--- a/src/include/utils/acl.h
+++ b/src/include/utils/acl.h
@@ -206,10 +206,13 @@ extern AclMode aclmask(const Acl *acl, Oid roleid, Oid ownerId,
 extern int	aclmembers(const Acl *acl, Oid **roleids);
 
 extern bool has_privs_of_role(Oid member, Oid role);
+extern bool may_manage_roles_objects(Oid member, Oid role);
 extern bool is_member_of_role(Oid member, Oid role);
+extern bool may_manage_roles_objects(Oid member, Oid role);
 extern bool is_member_of_role_nosuper(Oid member, Oid role);
 extern bool is_admin_of_role(Oid member, Oid role);
 extern void check_is_member_of_role(Oid member, Oid role);
+extern void check_may_manage_roles_objects(Oid member, Oid role);
 extern Oid	get_role_oid(const char *rolename, bool missing_ok);
 extern Oid	get_role_oid_or_public(const char *rolename);
 extern Oid	get_rolespec_oid(const RoleSpec *role, bool missing_ok);
diff --git a/src/test/regress/expected/role_priv.out b/src/test/regress/expected/role_priv.out
new file mode 100644
index 0000000000..22130af992
--- /dev/null
+++ b/src/test/regress/expected/role_priv.out
@@ -0,0 +1,1202 @@
+CREATE USER dba NOSUPERUSER;
+GRANT pg_manage_database_objects TO dba;
+CREATE USER noprivs NOSUPERUSER;
+CREATE USER superdba SUPERUSER;
+CREATE SCHEMA noprivs_schema;
+ALTER SCHEMA noprivs_schema OWNER TO noprivs;
+SET SESSION AUTHORIZATION superdba;
+CREATE AGGREGATE superdba_aggregate (
+   sfunc = int4_avg_accum,
+   basetype = int4,
+   stype = _int8,
+   finalfunc = int8_avg,
+   initcond1 = '{0,0}'
+);
+CREATE CAST (numeric AS text) WITHOUT FUNCTION;
+CREATE CAST (text AS numeric) WITH INOUT;
+CREATE COLLATION superdba_collation FROM "C";
+CREATE CONVERSION superdba_conversion FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
+CREATE DOMAIN superdba_domain numeric(8,2) CONSTRAINT superdba_domconstraint CHECK(VALUE != 42);
+CREATE FUNCTION superdba_event_trigger_func() RETURNS EVENT_TRIGGER AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER superdba_event_trigger_start ON ddl_command_start
+	WHEN TAG IN ('ALTER ACCESS METHOD')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE EVENT TRIGGER superdba_event_trigger_end ON ddl_command_end
+	WHEN TAG IN ('ALTER FOREIGN TABLE')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE EVENT TRIGGER superdba_event_trigger_rewrite ON table_rewrite
+	WHEN TAG IN ('ALTER TABLE')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE EVENT TRIGGER superdba_event_trigger_drop ON sql_drop
+	WHEN TAG IN ('DROP INDEX')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE SEQUENCE superdba_sequence;
+CREATE TABLE superdba_table (
+	id INTEGER DEFAULT nextval('superdba_sequence'),
+	id2 INTEGER GENERATED ALWAYS AS (length(str)) STORED,
+	id3 INTEGER GENERATED BY DEFAULT AS IDENTITY (NO CYCLE),
+	str TEXT,
+	ary INTEGER[],
+	adr INET,
+	CONSTRAINT superdba_constraint CHECK (length(str) < 100)
+);
+CREATE TABLE superdba_partitioned (
+	LIKE superdba_table
+) PARTITION BY RANGE (str COLLATE superdba_collation);
+CREATE TABLE superdba_partA_M PARTITION OF superdba_partitioned FOR VALUES FROM ('A') TO ('M');
+CREATE TABLE superdba_partM_Z PARTITION OF superdba_partitioned FOR VALUES FROM ('M') TO ('Z');
+CREATE INDEX superdba_index ON superdba_table (str);
+CREATE MATERIALIZED VIEW superdba_matview AS SELECT id, str, ary FROM superdba_table;
+CREATE POLICY superdba_policy ON superdba_table AS RESTRICTIVE;
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION superdba_publication FOR TABLE superdba_table;
+RESET client_min_messages;
+CREATE RULE superdba_rule AS ON UPDATE TO superdba_table DO INSTEAD NOTHING;
+CREATE SCHEMA superdba_schema;
+CREATE STATISTICS superdba_statistics ON (length(str)) FROM superdba_table;
+CREATE SUBSCRIPTION superdba_subscription CONNECTION 'dbname=none' PUBLICATION none WITH (connect = false, slot_name = NONE);
+WARNING:  tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+CREATE TEXT SEARCH PARSER superdba_tsparser (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE superdba_tstemplate (lexize=dsimple_lexize);
+CREATE TEXT SEARCH CONFIGURATION superdba_tsconfiguration (parser = superdba_tsparser);
+CREATE TEXT SEARCH DICTIONARY superdba_tsdictionary (template = superdba_tstemplate);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION superdba_trigger_func() RETURNS trigger AS $$ BEGIN RETURN NEW; END; $$ LANGUAGE PLPGSQL;
+CREATE TRIGGER superdba_trigger BEFORE INSERT ON superdba_table EXECUTE FUNCTION superdba_trigger_func();
+CREATE TYPE superdba_type AS ENUM ('charge', 'charm', 'color', 'mass', 'spin');
+CREATE FUNCTION superdba_type_eq (leftarg superdba_type, rightarg superdba_type) RETURNS BOOLEAN AS $$
+	SELECT $1::text = $2::text;
+$$ LANGUAGE sql;
+CREATE OPERATOR === (
+	FUNCTION = superdba_type_eq,
+	LEFTARG = superdba_type,
+	RIGHTARG = superdba_type
+);
+CREATE PROCEDURE superdba_procedure (t superdba_type) AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE VIEW superdba_view AS SELECT str, ary FROM superdba_table;
+RESET SESSION AUTHORIZATION;
+-- create objects owned by unprivileged user "noprivs"
+SET SESSION AUTHORIZATION noprivs;
+CREATE AGGREGATE noprivs_aggregate (
+   sfunc = int4_avg_accum,
+   basetype = int4,
+   stype = _int8,
+   finalfunc = int8_avg,
+   initcond1 = '{0,0}'
+);
+CREATE CAST (timestamp AS tsquery) WITHOUT FUNCTION;
+ERROR:  must be owner of type timestamp without time zone or type tsquery
+CREATE CAST (tsquery AS timestamp) WITH INOUT;
+ERROR:  must be owner of type tsquery or type timestamp without time zone
+CREATE COLLATION noprivs_collation FROM "C";
+CREATE CONVERSION noprivs_conversion FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
+CREATE DOMAIN noprivs_domain numeric(10,4) CONSTRAINT noprivs_domconstraint CHECK(VALUE != 42);
+CREATE FUNCTION noprivs_event_trigger_func() RETURNS EVENT_TRIGGER AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER noprivs_event_trigger_start ON ddl_command_start
+	WHEN TAG IN ('REVOKE')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+ERROR:  permission denied to create event trigger "noprivs_event_trigger_start"
+HINT:  Must be superuser to create an event trigger.
+CREATE EVENT TRIGGER noprivs_event_trigger_end ON ddl_command_end
+	WHEN TAG IN ('SECURITY LABLE')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+ERROR:  permission denied to create event trigger "noprivs_event_trigger_end"
+HINT:  Must be superuser to create an event trigger.
+CREATE EVENT TRIGGER noprivs_event_trigger_rewrite ON table_rewrite
+	WHEN TAG IN ('ALTER TABLE')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+ERROR:  permission denied to create event trigger "noprivs_event_trigger_rewrite"
+HINT:  Must be superuser to create an event trigger.
+CREATE EVENT TRIGGER noprivs_event_trigger_drop ON sql_drop
+	WHEN TAG IN ('DROP TRANSFORM')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+ERROR:  permission denied to create event trigger "noprivs_event_trigger_drop"
+HINT:  Must be superuser to create an event trigger.
+CREATE SEQUENCE noprivs_sequence;
+CREATE TABLE noprivs_table (
+	id INTEGER DEFAULT nextval('noprivs_sequence'),
+	id2 INTEGER GENERATED ALWAYS AS (length(str)) STORED,
+	id3 INTEGER GENERATED BY DEFAULT AS IDENTITY (NO CYCLE),
+	str TEXT,
+	ary INTEGER[],
+	adr INET,
+	CONSTRAINT noprivs_constraint CHECK (length(str) < 100)
+);
+CREATE TABLE noprivs_partitioned (
+	LIKE noprivs_table
+) PARTITION BY RANGE (str COLLATE noprivs_collation);
+CREATE TABLE noprivs_partA_M PARTITION OF noprivs_partitioned FOR VALUES FROM ('A') TO ('M');
+CREATE TABLE noprivs_partM_Z PARTITION OF noprivs_partitioned FOR VALUES FROM ('M') TO ('Z');
+CREATE INDEX noprivs_index ON noprivs_table (str);
+CREATE MATERIALIZED VIEW noprivs_matview AS SELECT id, str, ary FROM noprivs_table;
+CREATE POLICY noprivs_policy ON noprivs_table AS RESTRICTIVE;
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION noprivs_publication FOR TABLE noprivs_table;
+ERROR:  permission denied for database regression
+RESET client_min_messages;
+CREATE RULE noprivs_rule AS ON UPDATE TO noprivs_table DO INSTEAD NOTHING;
+CREATE SCHEMA noprivs_schema;
+ERROR:  permission denied for database regression
+CREATE STATISTICS noprivs_statistics ON (length(str)) FROM noprivs_table;
+CREATE SUBSCRIPTION noprivs_subscription CONNECTION 'dbname=none' PUBLICATION none WITH (connect = false, slot_name = NONE);
+ERROR:  must be superuser to create subscriptions
+CREATE TEXT SEARCH PARSER noprivs_tsparser (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+ERROR:  must be superuser to create text search parsers
+CREATE TEXT SEARCH TEMPLATE noprivs_tstemplate (lexize=dsimple_lexize);
+ERROR:  must be superuser to create text search templates
+CREATE TEXT SEARCH CONFIGURATION noprivs_tsconfiguration (parser = superdba_tsparser);
+CREATE TEXT SEARCH DICTIONARY noprivs_tsdictionary (template = superdba_tstemplate);
+CREATE TRANSFORM FOR int2 LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+ERROR:  must be owner of type smallint
+CREATE FUNCTION noprivs_trigger_func() RETURNS trigger AS $$ BEGIN RETURN NEW; END; $$ LANGUAGE PLPGSQL;
+CREATE TRIGGER noprivs_trigger BEFORE INSERT ON noprivs_table EXECUTE FUNCTION noprivs_trigger_func();
+CREATE TYPE noprivs_type AS ENUM ('charge', 'charm', 'color', 'mass', 'spin');
+CREATE FUNCTION noprivs_type_eq (leftarg noprivs_type, rightarg noprivs_type) RETURNS BOOLEAN AS $$
+	SELECT $1::text = $2::text;
+$$ LANGUAGE sql;
+CREATE OPERATOR === (
+	FUNCTION = noprivs_type_eq,
+	LEFTARG = noprivs_type,
+	RIGHTARG = noprivs_type
+);
+CREATE PROCEDURE noprivs_procedure (t noprivs_type) AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE VIEW noprivs_view AS SELECT str, ary FROM noprivs_table;
+RESET SESSION AUTHORIZATION;
+-- Check permissions for dba who has pg_manage_database_objects membership
+SET SESSION AUTHORIZATION dba;
+-- attempt to alter system built-in objects
+ALTER AGGREGATE pg_catalog.avg(int8) RENAME TO avg_renamed;
+ERROR:  must be owner of function avg
+ALTER AGGREGATE pg_catalog.avg(int8) OWNER TO noprivs;
+ERROR:  must be owner of function avg
+ALTER AGGREGATE pg_catalog.avg(int8) OWNER TO dba;
+ERROR:  must be owner of function avg
+ALTER AGGREGATE pg_catalog.avg(int8) OWNER TO superdba;
+ERROR:  must be owner of function avg
+ALTER AGGREGATE pg_catalog.avg(int8) SET SCHEMA noprivs_schema;
+ERROR:  must be owner of function avg
+ALTER TABLE pg_catalog.pg_class RENAME COLUMN relname TO relname_renamed;
+ERROR:  must be owner of table pg_class
+ALTER TABLE pg_catalog.pg_class ADD COLUMN othercolumn TEXT;
+ERROR:  must be owner of table pg_class
+ALTER TABLE pg_catalog.pg_class DROP COLUMN reloptions;
+ERROR:  must be owner of table pg_class
+ALTER TABLE pg_catalog.pg_class ALTER COLUMN relpartbound SET STATISTICS 200;
+ERROR:  must be owner of table pg_class
+ALTER TABLE pg_catalog.pg_class ALTER COLUMN relpartbound SET COMPRESSION pglz;
+ERROR:  must be owner of table pg_class
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 RENAME TO utf8_to_iso_8859_1_renamed;
+ERROR:  must be owner of conversion utf8_to_iso_8859_1
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 OWNER TO noprivs;
+ERROR:  must be owner of conversion utf8_to_iso_8859_1
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 OWNER TO dba;
+ERROR:  must be owner of conversion utf8_to_iso_8859_1
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 OWNER TO superdba;
+ERROR:  must be owner of conversion utf8_to_iso_8859_1
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 SET SCHEMA noprivs_schema;
+ERROR:  must be owner of conversion utf8_to_iso_8859_1
+ALTER DOMAIN information_schema.cardinal_number SET DEFAULT 0;
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER DOMAIN information_schema.cardinal_number SET NOT NULL;
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER DOMAIN information_schema.cardinal_number ADD CHECK (VALUE >= 0);
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER DOMAIN information_schema.cardinal_number RENAME TO cardinal_number_renamed;
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER DOMAIN information_schema.cardinal_number OWNER TO noprivs;
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER DOMAIN information_schema.cardinal_number OWNER TO dba;
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER DOMAIN information_schema.cardinal_number OWNER TO superdba;
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER DOMAIN information_schema.cardinal_number SET SCHEMA noprivs_schema;
+ERROR:  must be owner of type information_schema.cardinal_number
+ALTER EXTENSION plpgsql UPDATE TO 'bogus_plpgsql_version';
+ERROR:  must be owner of extension plpgsql
+ALTER EXTENSION plpgsql SET SCHEMA noprivs_schema;
+ERROR:  must be owner of extension plpgsql
+ALTER EXTENSION plpgsql ADD TABLE pg_catalog.pg_class;
+ERROR:  must be owner of extension plpgsql
+ALTER EXTENSION plpgsql DROP TABLE pg_catalog.pg_class;
+ERROR:  must be owner of extension plpgsql
+ALTER RULE pg_settings_u ON pg_catalog.pg_settings RENAME TO pg_settings_u_renamed;
+ERROR:  must be owner of view pg_settings
+ALTER RULE pg_settings_u_renamed ON pg_catalog.pg_settings RENAME TO pg_settings_u;
+ERROR:  must be owner of view pg_settings
+ALTER SCHEMA information_schema OWNER TO noprivs;
+ERROR:  must be owner of schema information_schema
+ALTER SCHEMA information_schema OWNER TO dba;
+ERROR:  must be owner of schema information_schema
+ALTER SCHEMA information_schema OWNER TO superdba;
+ERROR:  must be owner of schema information_schema
+ALTER SCHEMA information_schema RENAME TO information_schema_renamed;
+ERROR:  must be owner of schema information_schema
+ALTER TABLE information_schema.sql_features RENAME TO sql_features_renamed;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features OWNER TO noprivs;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features OWNER TO dba;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features OWNER TO superdba;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features DISABLE ROW LEVEL SECURITY;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features ENABLE ROW LEVEL SECURITY;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features FORCE ROW LEVEL SECURITY;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features NO FORCE ROW LEVEL SECURITY;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features CLUSTER ON superdba_index;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features SET WITHOUT CLUSTER;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features SET WITHOUT OIDS;
+ERROR:  must be owner of table sql_features
+ALTER TABLE information_schema.sql_features SET SCHEMA noprivs_schema;
+ERROR:  must be owner of table sql_features
+ALTER VIEW information_schema.foreign_table_options ALTER COLUMN foreign_table_name SET DEFAULT 'something';
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options ALTER COLUMN foreign_table_name DROP DEFAULT;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options OWNER TO noprivs;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options OWNER TO dba;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options OWNER TO superdba;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options RENAME COLUMN foreign_table_name TO foreign_table_name_renamed;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options RENAME COLUMN foreign_table_name_renamed TO foreign_table_name;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options RENAME TO foreign_table_options_renamed;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options SET SCHEMA noprivs_schema;
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options SET (check_option = local);
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options SET (check_option = cascaded);
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options RESET (check_option);
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options SET (security_barrier = on);
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options SET (security_barrier = off);
+ERROR:  must be owner of view foreign_table_options
+ALTER VIEW information_schema.foreign_table_options RESET (security_barrier);
+ERROR:  must be owner of view foreign_table_options
+-- attempt to alter objects owned by superdba
+ALTER AGGREGATE public.superdba_aggregate(int4) RENAME TO superdba_aggregate_renamed;
+ERROR:  must be owner of function superdba_aggregate
+ALTER AGGREGATE public.superdba_aggregate(int4) OWNER TO noprivs;
+ERROR:  must be owner of function superdba_aggregate
+ALTER AGGREGATE public.superdba_aggregate(int4) OWNER TO dba;
+ERROR:  must be owner of function superdba_aggregate
+ALTER AGGREGATE public.superdba_aggregate(int4) OWNER TO superdba;
+ALTER AGGREGATE public.superdba_aggregate(int4) SET SCHEMA noprivs_schema;
+ERROR:  must be owner of function superdba_aggregate
+ALTER COLLATION public.superdba_collation RENAME TO superdba_collation_renamed;
+ERROR:  must be owner of collation superdba_collation
+ALTER COLLATION public.superdba_collation OWNER TO noprivs;
+ERROR:  must be owner of collation superdba_collation
+ALTER COLLATION public.superdba_collation OWNER TO dba;
+ERROR:  must be owner of collation superdba_collation
+ALTER COLLATION public.superdba_collation OWNER TO superdba;
+ALTER COLLATION public.superdba_collation SET SCHEMA noprivs_schema;
+ERROR:  must be owner of collation superdba_collation
+ALTER CONVERSION public.superdba_conversion RENAME TO superdba_conversion_renamed;
+ERROR:  must be owner of conversion superdba_conversion
+ALTER CONVERSION public.superdba_conversion OWNER TO noprivs;
+ERROR:  must be owner of conversion superdba_conversion
+ALTER CONVERSION public.superdba_conversion OWNER TO dba;
+ERROR:  must be owner of conversion superdba_conversion
+ALTER CONVERSION public.superdba_conversion OWNER TO superdba;
+ALTER CONVERSION public.superdba_conversion SET SCHEMA noprivs_schema;
+ERROR:  must be owner of conversion superdba_conversion
+ALTER DOMAIN public.superdba_domain SET DEFAULT 0;
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain SET NOT NULL;
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain ADD CHECK (VALUE >= 0);
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain RENAME TO superdba_domain_renamed;
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain OWNER TO noprivs;
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain OWNER TO dba;
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain OWNER TO superdba;
+ALTER DOMAIN public.superdba_domain SET SCHEMA noprivs_schema;
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain RENAME CONSTRAINT superdba_domconstraint TO superdba_domconstraint_renamed;
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain ADD CONSTRAINT otherconstraint CHECK (VALUE != 5);
+ERROR:  must be owner of type superdba_domain
+ALTER DOMAIN public.superdba_domain DROP CONSTRAINT otherconstraint;
+ERROR:  must be owner of type superdba_domain
+ALTER EVENT TRIGGER superdba_event_trigger_start DISABLE;
+ERROR:  must be owner of event trigger superdba_event_trigger_start
+ALTER EVENT TRIGGER superdba_event_trigger_start ENABLE;
+ERROR:  must be owner of event trigger superdba_event_trigger_start
+ALTER EVENT TRIGGER superdba_event_trigger_end ENABLE REPLICA;
+ERROR:  must be owner of event trigger superdba_event_trigger_end
+ALTER EVENT TRIGGER superdba_event_trigger_end ENABLE ALWAYS;
+ERROR:  must be owner of event trigger superdba_event_trigger_end
+ALTER EVENT TRIGGER superdba_event_trigger_rewrite OWNER TO noprivs;
+ERROR:  must be owner of event trigger superdba_event_trigger_rewrite
+ALTER EVENT TRIGGER superdba_event_trigger_rewrite OWNER TO dba;
+ERROR:  must be owner of event trigger superdba_event_trigger_rewrite
+ALTER EVENT TRIGGER superdba_event_trigger_rewrite OWNER TO superdba;
+ALTER EVENT TRIGGER superdba_event_trigger_drop RENAME TO superdba_event_trigger_drop_renamed;
+ERROR:  must be owner of event trigger superdba_event_trigger_drop
+ALTER MATERIALIZED VIEW public.superdba_matview SET SCHEMA noprivs_schema;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview RENAME TO superdba_matview_renamed;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview RENAME ary TO ary_renamed;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview ALTER str SET STATISTICS 20;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview ALTER str SET STORAGE external;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview ALTER str SET COMPRESSION pglz;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview SET WITHOUT CLUSTER;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview OWNER TO noprivs;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview OWNER TO dba;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER MATERIALIZED VIEW public.superdba_matview OWNER TO superdba;
+ERROR:  must be owner of materialized view superdba_matview
+ALTER POLICY superdba_policy ON public.superdba_table RENAME TO superdba_policy_renamed;
+ERROR:  must be owner of table superdba_table
+ALTER PUBLICATION superdba_publication DROP TABLE superdba_table;
+ERROR:  must be owner of publication superdba_publication
+ALTER PUBLICATION superdba_publication SET (publish = insert);
+ERROR:  must be owner of publication superdba_publication
+ALTER PUBLICATION superdba_publication OWNER TO noprivs;
+ERROR:  must be owner of publication superdba_publication
+ALTER PUBLICATION superdba_publication OWNER TO dba;
+ERROR:  must be owner of publication superdba_publication
+ALTER PUBLICATION superdba_publication OWNER TO superdba;
+ALTER PUBLICATION superdba_publication RENAME TO superdba_publication_renamed;
+ERROR:  must be owner of publication superdba_publication
+ALTER RULE superdba_rule ON public.superdba_table RENAME TO superdba_rule_renamed;
+ERROR:  must be owner of table superdba_table
+ALTER SCHEMA superdba_schema OWNER TO noprivs;
+ERROR:  must be owner of schema superdba_schema
+ALTER SCHEMA superdba_schema OWNER TO dba;
+ERROR:  must be owner of schema superdba_schema
+ALTER SCHEMA superdba_schema OWNER TO superdba;
+ALTER SCHEMA superdba_schema RENAME TO superdba_schema_renamed;
+ERROR:  must be owner of schema superdba_schema
+ALTER SEQUENCE public.superdba_sequence RESTART;
+ERROR:  must be owner of sequence superdba_sequence
+ALTER SEQUENCE public.superdba_sequence INCREMENT BY 3;
+ERROR:  must be owner of sequence superdba_sequence
+ALTER SEQUENCE public.superdba_sequence OWNER TO noprivs;
+ERROR:  must be owner of sequence superdba_sequence
+ALTER SEQUENCE public.superdba_sequence OWNER TO dba;
+ERROR:  must be owner of sequence superdba_sequence
+ALTER SEQUENCE public.superdba_sequence OWNER TO superdba;
+ERROR:  must be owner of sequence superdba_sequence
+ALTER SEQUENCE public.superdba_sequence SET SCHEMA noprivs_schema;
+ERROR:  must be owner of sequence superdba_sequence
+ALTER SEQUENCE public.superdba_sequence RENAME TO superdba_sequence_renamed;
+ERROR:  must be owner of sequence superdba_sequence
+ALTER STATISTICS public.superdba_statistics SET STATISTICS 10000;
+ERROR:  must be owner of statistics object public.superdba_statistics
+ALTER STATISTICS public.superdba_statistics OWNER TO noprivs;
+ERROR:  must be owner of statistics object superdba_statistics
+ALTER STATISTICS public.superdba_statistics OWNER TO dba;
+ERROR:  must be owner of statistics object superdba_statistics
+ALTER STATISTICS public.superdba_statistics OWNER TO superdba;
+ALTER STATISTICS public.superdba_statistics RENAME TO superdba_statistics_renamed;
+ERROR:  must be owner of statistics object superdba_statistics
+ALTER STATISTICS public.superdba_statistics SET SCHEMA noprivs_schema;
+ERROR:  must be owner of statistics object superdba_statistics
+ALTER SUBSCRIPTION superdba_subscription CONNECTION 'dbname=other';
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET PUBLICATION otherpub;
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription ADD PUBLICATION anotherpub;
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription DROP PUBLICATION andere;
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription DISABLE;
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (slot_name = otherslot);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = remote_apply);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = on);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = remote_write);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = local);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = off);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (binary = on);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (binary = off);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (streaming = on);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription SET (streaming = off);
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription OWNER TO noprivs;
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription OWNER TO dba;
+ERROR:  must be owner of subscription superdba_subscription
+ALTER SUBSCRIPTION superdba_subscription OWNER TO superdba;
+ALTER SUBSCRIPTION superdba_subscription RENAME TO superdba_subscription_renamed;
+ERROR:  must be owner of subscription superdba_subscription
+ALTER TABLE public.superdba_table RENAME COLUMN str TO str_renamed;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table ADD COLUMN othercolumn TEXT;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table DROP COLUMN othercolumn;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table DROP COLUMN adr;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table ADD COLUMN adr INET;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table ALTER COLUMN ary SET STATISTICS 200;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table ALTER COLUMN ary SET COMPRESSION pglz;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table VALIDATE CONSTRAINT superdba_constraint;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table DISABLE ROW LEVEL SECURITY;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table ENABLE ROW LEVEL SECURITY;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table FORCE ROW LEVEL SECURITY;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table NO FORCE ROW LEVEL SECURITY;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table CLUSTER ON superdba_index;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table SET WITHOUT CLUSTER;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table SET WITHOUT OIDS;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table RENAME TO superdba_table_renamed;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table OWNER TO noprivs;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table OWNER TO dba;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table OWNER TO superdba;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table SET SCHEMA noprivs_schema;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_table SET TABLESPACE pg_global;
+ERROR:  must be owner of table superdba_table
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION pg_catalog.pg_class FOR VALUES FROM ('0') TO ('9');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_table FOR VALUES FROM ('0') TO ('9');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_table;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_partA_M;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned INHERIT public.superdba_table;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned NO INHERIT public.superdba_table;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned REPLICA IDENTITY FULL;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned REPLICA IDENTITY NOTHING;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partM_Z ATTACH PARTITION public.superdba_table FOR VALUES FROM ('0') TO ('9');
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partM_Z DETACH PARTITION public.superdba_table;
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partM_Z DETACH PARTITION public.superdba_partA_M;
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partM_Z ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partM_Z INHERIT public.superdba_table;
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partM_Z NO INHERIT public.superdba_table;
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partM_Z REPLICA IDENTITY FULL;
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partM_Z REPLICA IDENTITY NOTHING;
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.noprivs_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_partA_M;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_partA_M;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.noprivs_partA_M;
+ERROR:  must be owner of table superdba_partitioned
+ALTER TEXT SEARCH PARSER public.superdba_tsparser SET SCHEMA noprivs_schema;
+ERROR:  must be superuser to set schema of text search parser superdba_tsparser
+ALTER TEXT SEARCH PARSER public.superdba_tsparser RENAME TO superdba_tsparser_renamed;
+ERROR:  must be superuser to rename text search parser superdba_tsparser
+ALTER TEXT SEARCH TEMPLATE public.superdba_tstemplate SET SCHEMA noprivs_schema;
+ERROR:  must be superuser to set schema of text search template superdba_tstemplate
+ALTER TEXT SEARCH TEMPLATE public.superdba_tstemplate RENAME TO superdba_tstemplate_renamed;
+ERROR:  must be superuser to rename text search template superdba_tstemplate
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration OWNER TO noprivs;
+ERROR:  must be owner of text search configuration superdba_tsconfiguration
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration OWNER TO dba;
+ERROR:  must be owner of text search configuration superdba_tsconfiguration
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration OWNER TO superdba;
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration SET SCHEMA noprivs_schema;
+ERROR:  must be owner of text search configuration superdba_tsconfiguration
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration RENAME TO superdba_tsconfiguration_renamed;
+ERROR:  must be owner of text search configuration superdba_tsconfiguration
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary OWNER TO noprivs;
+ERROR:  must be owner of text search dictionary superdba_tsdictionary
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary OWNER TO dba;
+ERROR:  must be owner of text search dictionary superdba_tsdictionary
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary OWNER TO superdba;
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary SET SCHEMA noprivs_schema;
+ERROR:  must be owner of text search dictionary superdba_tsdictionary
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary RENAME TO superdba_tsdictionary_renamed;
+ERROR:  must be owner of text search dictionary superdba_tsdictionary
+ALTER TRIGGER superdba_trigger ON public.superdba_table RENAME TO superdba_trigger_renamed;
+ERROR:  must be owner of table superdba_table
+ALTER TRIGGER superdba_trigger ON public.superdba_table DEPENDS ON EXTENSION plpgsql;
+ERROR:  must be owner of relation superdba_table
+ALTER TRIGGER superdba_trigger ON public.superdba_table NO DEPENDS ON EXTENSION plpgsql;
+ERROR:  must be owner of relation superdba_table
+ALTER TYPE public.superdba_type OWNER TO noprivs;
+ERROR:  must be owner of type superdba_type
+ALTER TYPE public.superdba_type OWNER TO dba;
+ERROR:  must be owner of type superdba_type
+ALTER TYPE public.superdba_type OWNER TO superdba;
+ALTER TYPE public.superdba_type RENAME TO superdba_type_renamed;
+ERROR:  must be owner of type superdba_type
+ALTER TYPE public.superdba_type SET SCHEMA noprivs_schema;
+ERROR:  must be owner of type superdba_type
+ALTER TYPE public.superdba_type ADD VALUE 'strange';
+ERROR:  must be owner of type superdba_type
+ALTER TYPE public.superdba_type RENAME VALUE 'spin' TO 'twist';
+ERROR:  must be owner of type superdba_type
+ALTER TYPE public.superdba_type SET ( ANALYZE = none );
+ERROR:  must be superuser to alter a type
+ALTER TYPE public.superdba_type SET ( SUBSCRIPT = none );
+ERROR:  must be superuser to alter a type
+ALTER TYPE public.superdba_type SET ( STORAGE = plain );
+ERROR:  must be owner of type superdba_type
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) OWNER TO noprivs;
+ERROR:  must be owner of function superdba_procedure
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) OWNER TO dba;
+ERROR:  must be owner of function superdba_procedure
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) OWNER TO superdba;
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) SET SCHEMA noprivs_schema;
+ERROR:  must be owner of function superdba_procedure
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) RENAME TO superdba_procedure_renamed;
+ERROR:  must be owner of function superdba_procedure
+ALTER VIEW public.superdba_view ALTER COLUMN str SET DEFAULT 'otherstr';
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view ALTER COLUMN str DROP DEFAULT;
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view OWNER TO noprivs;
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view OWNER TO dba;
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view OWNER TO superdba;
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view RENAME COLUMN ary TO ary_renamed;
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view RENAME TO superdba_view_renamed;
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view SET SCHEMA noprivs_schema;
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view SET (check_option = local);
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view SET (check_option = cascaded);
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view RESET (check_option);
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view SET (security_barrier = on);
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view SET (security_barrier = off);
+ERROR:  must be owner of view superdba_view
+ALTER VIEW public.superdba_view RESET (security_barrier);
+ERROR:  must be owner of view superdba_view
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) OWNER TO noprivs;
+ERROR:  must be owner of function superdba_type_eq
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) OWNER TO dba;
+ERROR:  must be owner of function superdba_type_eq
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) OWNER TO superdba;
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) SET SCHEMA noprivs_schema;
+ERROR:  must be owner of function superdba_type_eq
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) DEPENDS ON EXTENSION plpgsql;
+ERROR:  must be owner of function public.superdba_type_eq
+ALTER OPERATOR public.=== (superdba_type, superdba_type) OWNER TO noprivs;
+ERROR:  must be owner of operator ===
+ALTER OPERATOR public.=== (superdba_type, superdba_type) OWNER TO dba;
+ERROR:  must be owner of operator ===
+ALTER OPERATOR public.=== (superdba_type, superdba_type) OWNER TO superdba;
+ALTER OPERATOR public.=== (superdba_type, superdba_type) SET SCHEMA noprivs_schema;
+ERROR:  must be owner of operator ===
+-- attempt to alter objects owned by unprivileged user "noprivs"
+ALTER AGGREGATE public.noprivs_aggregate(int4) RENAME TO noprivs_aggregate_renamed;
+ALTER AGGREGATE public.noprivs_aggregate_renamed(int4) RENAME TO noprivs_aggregate;
+ALTER AGGREGATE public.noprivs_aggregate(int4) OWNER TO noprivs;
+ALTER AGGREGATE public.noprivs_aggregate(int4) OWNER TO dba;
+ALTER AGGREGATE public.noprivs_aggregate(int4) OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER AGGREGATE public.noprivs_aggregate(int4) SET SCHEMA noprivs_schema;
+ALTER AGGREGATE noprivs_schema.noprivs_aggregate(int4) SET SCHEMA public;
+ALTER COLLATION public.noprivs_collation RENAME TO noprivs_collation_renamed;
+ALTER COLLATION public.noprivs_collation_renamed RENAME TO noprivs_collation;
+ALTER COLLATION public.noprivs_collation OWNER TO dba;
+ALTER COLLATION public.noprivs_collation OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER COLLATION public.noprivs_collation OWNER TO noprivs;
+ALTER COLLATION public.noprivs_collation SET SCHEMA noprivs_schema;
+ALTER COLLATION noprivs_schema.noprivs_collation SET SCHEMA public;
+ALTER CONVERSION public.noprivs_conversion RENAME TO noprivs_conversion_renamed;
+ALTER CONVERSION public.noprivs_conversion_renamed RENAME TO noprivs_conversion;
+ALTER CONVERSION public.noprivs_conversion OWNER TO dba;
+ALTER CONVERSION public.noprivs_conversion OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER CONVERSION public.noprivs_conversion OWNER TO noprivs;
+ALTER CONVERSION public.noprivs_conversion SET SCHEMA noprivs_schema;
+ALTER CONVERSION noprivs_schema.noprivs_conversion SET SCHEMA public;
+ALTER DOMAIN public.noprivs_domain SET DEFAULT 0;
+ALTER DOMAIN public.noprivs_domain SET NOT NULL;
+ALTER DOMAIN public.noprivs_domain ADD CHECK (VALUE >= 0);
+ALTER DOMAIN public.noprivs_domain RENAME TO noprivs_domain_renamed;
+ALTER DOMAIN public.noprivs_domain_renamed RENAME TO noprivs_domain;
+ALTER DOMAIN public.noprivs_domain OWNER TO dba;
+ALTER DOMAIN public.noprivs_domain OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER DOMAIN public.noprivs_domain OWNER TO noprivs;
+ALTER DOMAIN public.noprivs_domain SET SCHEMA noprivs_schema;
+ALTER DOMAIN noprivs_schema.noprivs_domain SET SCHEMA public;
+ALTER DOMAIN public.noprivs_domain RENAME CONSTRAINT noprivs_domconstraint TO noprivs_domconstraint_renamed;
+ALTER DOMAIN public.noprivs_domain RENAME CONSTRAINT noprivs_domconstraint_renamed TO noprivs_domconstraint;
+ALTER DOMAIN public.noprivs_domain ADD CONSTRAINT otherconstraint CHECK (VALUE != 5);
+ALTER DOMAIN public.noprivs_domain DROP CONSTRAINT otherconstraint;
+ALTER MATERIALIZED VIEW public.noprivs_matview SET SCHEMA noprivs_schema;
+ALTER MATERIALIZED VIEW noprivs_schema.noprivs_matview SET SCHEMA public;
+ALTER MATERIALIZED VIEW public.noprivs_matview RENAME TO noprivs_matview_renamed;
+ALTER MATERIALIZED VIEW public.noprivs_matview_renamed RENAME TO noprivs_matview;
+ALTER MATERIALIZED VIEW public.noprivs_matview RENAME ary TO ary_renamed;
+ALTER MATERIALIZED VIEW public.noprivs_matview RENAME ary_renamed TO ary;
+ALTER MATERIALIZED VIEW public.noprivs_matview ALTER str SET STATISTICS 20;
+ALTER MATERIALIZED VIEW public.noprivs_matview ALTER str SET STORAGE external;
+ALTER MATERIALIZED VIEW public.noprivs_matview ALTER str SET COMPRESSION pglz;
+ALTER MATERIALIZED VIEW public.noprivs_matview SET WITHOUT CLUSTER;
+ALTER MATERIALIZED VIEW public.noprivs_matview OWNER TO dba;
+ALTER MATERIALIZED VIEW public.noprivs_matview OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER MATERIALIZED VIEW public.noprivs_matview OWNER TO noprivs;
+ALTER POLICY noprivs_policy ON noprivs_table RENAME TO noprivs_policy_renamed;
+ALTER POLICY noprivs_policy_renamed ON noprivs_table RENAME TO noprivs_policy;
+ALTER RULE noprivs_rule ON public.noprivs_table RENAME TO noprivs_rule_renamed;
+ALTER RULE noprivs_rule_renamed ON public.noprivs_table RENAME TO noprivs_rule;
+ALTER SCHEMA noprivs_schema OWNER TO dba;
+ALTER SCHEMA noprivs_schema OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER SCHEMA noprivs_schema OWNER TO noprivs;
+ALTER SCHEMA noprivs_schema RENAME TO noprivs_schema_renamed;
+ALTER SCHEMA noprivs_schema_renamed RENAME TO noprivs_schema;
+ALTER SEQUENCE public.noprivs_sequence RESTART;
+ALTER SEQUENCE public.noprivs_sequence INCREMENT BY 3;
+ALTER SEQUENCE public.noprivs_sequence OWNER TO dba;
+ALTER SEQUENCE public.noprivs_sequence OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER SEQUENCE public.noprivs_sequence OWNER TO noprivs;
+ALTER SEQUENCE public.noprivs_sequence SET SCHEMA noprivs_schema;
+ALTER SEQUENCE noprivs_schema.noprivs_sequence SET SCHEMA public;;
+ALTER SEQUENCE public.noprivs_sequence RENAME TO noprivs_sequence_renamed;
+ALTER SEQUENCE public.noprivs_sequence_renamed RENAME TO noprivs_sequence;
+ALTER STATISTICS public.noprivs_statistics SET STATISTICS 10000;
+ALTER STATISTICS public.noprivs_statistics OWNER TO dba;
+ALTER STATISTICS public.noprivs_statistics OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER STATISTICS public.noprivs_statistics OWNER TO noprivs;
+ALTER STATISTICS public.noprivs_statistics RENAME TO noprivs_statistics_renamed;
+ALTER STATISTICS public.noprivs_statistics_renamed RENAME TO noprivs_statistics;
+ALTER STATISTICS public.noprivs_statistics SET SCHEMA noprivs_schema;
+ALTER STATISTICS noprivs_schema.noprivs_statistics SET SCHEMA public;
+ALTER TABLE public.noprivs_table RENAME COLUMN str TO str_renamed;
+ALTER TABLE public.noprivs_table RENAME COLUMN str_renamed TO str;
+ALTER TABLE public.noprivs_table ADD COLUMN othercolumn TEXT;
+ALTER TABLE public.noprivs_table DROP COLUMN othercolumn;
+ALTER TABLE public.noprivs_table DROP COLUMN adr;
+ALTER TABLE public.noprivs_table ADD COLUMN adr INET;
+ALTER TABLE public.noprivs_table ALTER COLUMN ary SET STATISTICS 200;
+ALTER TABLE public.noprivs_table ALTER COLUMN ary SET COMPRESSION pglz;
+ALTER TABLE public.noprivs_table VALIDATE CONSTRAINT noprivs_constraint;
+ALTER TABLE public.noprivs_table DISABLE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table ENABLE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table FORCE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table NO FORCE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table CLUSTER ON noprivs_index;
+ALTER TABLE public.noprivs_table SET WITHOUT CLUSTER;
+ALTER TABLE public.noprivs_table SET WITHOUT OIDS;
+ALTER TABLE public.noprivs_table RENAME TO noprivs_table_renamed;
+ALTER TABLE public.noprivs_table_renamed RENAME TO noprivs_table;
+ALTER TABLE public.noprivs_table OWNER TO dba;
+ALTER TABLE public.noprivs_table OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER TABLE public.noprivs_table OWNER TO noprivs;
+ALTER TABLE public.noprivs_table SET SCHEMA noprivs_schema;
+ALTER TABLE noprivs_schema.noprivs_table SET SCHEMA public;
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION pg_catalog.pg_class FOR VALUES FROM ('0') TO ('9');
+ERROR:  must be owner of table pg_class
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_table FOR VALUES FROM ('0') TO ('9');
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.noprivs_table;
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.noprivs_partA_M;
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.noprivs_partitioned INHERIT public.noprivs_table;
+ERROR:  cannot change inheritance of partitioned table
+ALTER TABLE public.noprivs_partitioned NO INHERIT public.noprivs_table;
+ERROR:  relation "noprivs_table" is not a parent of relation "noprivs_partitioned"
+ALTER TABLE public.noprivs_partitioned REPLICA IDENTITY FULL;
+ALTER TABLE public.noprivs_partitioned REPLICA IDENTITY NOTHING;
+ALTER TABLE public.noprivs_partitioned SET SCHEMA noprivs_schema;
+ALTER TABLE noprivs_schema.noprivs_partitioned SET SCHEMA public;
+ALTER TABLE public.noprivs_partM_Z ATTACH PARTITION public.noprivs_table FOR VALUES FROM ('0') TO ('9');
+ERROR:  table "noprivs_partm_z" is not partitioned
+ALTER TABLE public.noprivs_partM_Z DETACH PARTITION public.noprivs_table;
+ERROR:  table "noprivs_partm_z" is not partitioned
+ALTER TABLE public.noprivs_partM_Z DETACH PARTITION public.noprivs_partA_M;
+ERROR:  table "noprivs_partm_z" is not partitioned
+ALTER TABLE public.noprivs_partM_Z ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  table "noprivs_partm_z" is not partitioned
+ALTER TABLE public.noprivs_partM_Z INHERIT public.noprivs_table;
+ERROR:  cannot change inheritance of a partition
+ALTER TABLE public.noprivs_partM_Z NO INHERIT public.noprivs_table;
+ERROR:  cannot change inheritance of a partition
+ALTER TABLE public.noprivs_partM_Z REPLICA IDENTITY FULL;
+ALTER TABLE public.noprivs_partM_Z REPLICA IDENTITY NOTHING;
+ALTER TABLE public.noprivs_partM_Z SET SCHEMA noprivs_schema;
+ALTER TABLE noprivs_schema.noprivs_partM_Z SET SCHEMA public;
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  must be owner of table superdba_parta_m
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  must be owner of table superdba_parta_m
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ERROR:  must be owner of table superdba_partm_z
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ERROR:  "noprivs_parta_m" is already a partition
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ERROR:  "noprivs_partm_z" is already a partition
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.superdba_partA_M;
+ERROR:  relation "superdba_parta_m" is not a partition of relation "noprivs_partitioned"
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.superdba_partA_M;
+ERROR:  relation "superdba_parta_m" is not a partition of relation "noprivs_partitioned"
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.noprivs_partA_M;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration OWNER TO noprivs;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration OWNER TO dba;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration SET SCHEMA noprivs_schema;
+ALTER TEXT SEARCH CONFIGURATION noprivs_schema.noprivs_tsconfiguration SET SCHEMA public;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration RENAME TO noprivs_tsconfiguration_renamed;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration_renamed RENAME TO noprivs_tsconfiguration;
+ALTER TRIGGER noprivs_trigger ON public.noprivs_table RENAME TO noprivs_trigger_renamed;
+ALTER TRIGGER noprivs_trigger_renamed ON public.noprivs_table RENAME TO noprivs_trigger;
+ALTER TRIGGER noprivs_trigger ON public.noprivs_table DEPENDS ON EXTENSION plpgsql;
+ALTER TRIGGER noprivs_trigger ON public.noprivs_table NO DEPENDS ON EXTENSION plpgsql;
+ALTER TYPE public.noprivs_type OWNER TO dba;
+ALTER TYPE public.noprivs_type OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER TYPE public.noprivs_type OWNER TO noprivs;
+ALTER TYPE public.noprivs_type RENAME TO noprivs_type_renamed;
+ALTER TYPE public.noprivs_type_renamed RENAME TO noprivs_type;
+ALTER TYPE public.noprivs_type SET SCHEMA noprivs_schema;
+ALTER TYPE noprivs_schema.noprivs_type SET SCHEMA public;
+ALTER TYPE public.noprivs_type ADD VALUE 'strange';
+ALTER TYPE public.noprivs_type RENAME VALUE 'spin' TO 'twist';
+ALTER TYPE public.noprivs_type SET ( ANALYZE = none );
+ERROR:  must be superuser to alter a type
+ALTER TYPE public.noprivs_type SET ( SUBSCRIPT = none );
+ERROR:  must be superuser to alter a type
+ALTER TYPE public.noprivs_type SET ( STORAGE = plain );
+ERROR:  noprivs_type is not a base type
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) OWNER TO dba;
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) OWNER TO noprivs;
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) SET SCHEMA noprivs_schema;
+ALTER PROCEDURE noprivs_schema.noprivs_procedure (t noprivs_type) SET SCHEMA public;
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) RENAME TO noprivs_procedure_renamed;
+ALTER PROCEDURE public.noprivs_procedure_renamed (t noprivs_type) RENAME TO noprivs_procedure;
+ALTER VIEW public.noprivs_view ALTER COLUMN str SET DEFAULT 'otherstr';
+ALTER VIEW public.noprivs_view ALTER COLUMN str DROP DEFAULT;
+ALTER VIEW public.noprivs_view OWNER TO dba;
+ALTER VIEW public.noprivs_view OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER VIEW public.noprivs_view OWNER TO noprivs;
+ALTER VIEW public.noprivs_view RENAME COLUMN ary TO ary_renamed;
+ALTER VIEW public.noprivs_view RENAME COLUMN ary_renamed TO ary;
+ALTER VIEW public.noprivs_view RENAME TO noprivs_view_renamed;
+ALTER VIEW public.noprivs_view_renamed RENAME TO noprivs_view;
+ALTER VIEW public.noprivs_view SET SCHEMA noprivs_schema;
+ALTER VIEW noprivs_schema.noprivs_view SET SCHEMA public;
+ALTER VIEW public.noprivs_view SET (check_option = local);
+ALTER VIEW public.noprivs_view SET (check_option = cascaded);
+ALTER VIEW public.noprivs_view RESET (check_option);
+ALTER VIEW public.noprivs_view SET (security_barrier = on);
+ALTER VIEW public.noprivs_view SET (security_barrier = off);
+ALTER VIEW public.noprivs_view RESET (security_barrier);
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) OWNER TO dba;
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) OWNER TO noprivs;
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) SET SCHEMA noprivs_schema;
+ALTER FUNCTION noprivs_schema.noprivs_type_eq (noprivs_type, noprivs_type) SET SCHEMA public;
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) DEPENDS ON EXTENSION plpgsql;
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) OWNER TO dba;
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) OWNER TO superdba;
+ERROR:  must be member of role "superdba"
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) OWNER TO noprivs;
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) SET SCHEMA noprivs_schema;
+ALTER OPERATOR noprivs_schema.=== (noprivs_type, noprivs_type) SET SCHEMA public;
+RESET SESSION AUTHORIZATION;
+-- Check permissions for dba who has pg_manage_database_objects membership
+SET SESSION AUTHORIZATION dba;
+-- attempt to comment on system built-in objects
+COMMENT ON ACCESS METHOD spgist IS 'comment on built-in object';
+ERROR:  must be superuser
+COMMENT ON AGGREGATE pg_catalog.avg(int8) IS 'comment on built-in object';
+ERROR:  must be owner of aggregate pg_catalog.avg
+COMMENT ON CAST (int4 AS int8) IS 'comment on built-in object';
+ERROR:  must be owner of type integer or type bigint
+COMMENT ON COLLATION "nl_NL.UTF-8" IS 'comment on built-in object';
+ERROR:  must be owner of collation nl_NL.UTF-8
+COMMENT ON CONVERSION utf8_to_windows_1251 IS 'comment on built-in object';
+ERROR:  must be owner of conversion utf8_to_windows_1251
+COMMENT ON DATABASE template1 IS 'comment on built-in object';
+ERROR:  must be owner of database template1
+COMMENT ON DOMAIN information_schema.cardinal_number IS 'comment on built-in object';
+ERROR:  must be owner of type information_schema.cardinal_number
+COMMENT ON LANGUAGE sql IS 'comment on built-in object';
+ERROR:  must be owner of language sql
+COMMENT ON TABLE pg_catalog.pg_class IS 'comment on built-in object';
+ERROR:  must be owner of table pg_class
+COMMENT ON EXTENSION plpgsql IS 'comment on built-in object';
+ERROR:  must be owner of extension plpgsql
+COMMENT ON OPERATOR CLASS float4_ops USING btree IS 'comment on built-in object';
+ERROR:  must be owner of operator class btree.float4_ops
+COMMENT ON OPERATOR FAMILY float_ops USING btree IS 'comment on built-in object';
+ERROR:  must be owner of operator family btree.float_ops
+COMMENT ON ROLE pg_read_server_files IS 'comment on built-in object';
+ERROR:  must have CREATEROLE privilege
+COMMENT ON RULE pg_settings_u ON pg_catalog.pg_settings IS 'comment on built-in object';
+ERROR:  must be owner of relation pg_settings
+COMMENT ON SCHEMA information_schema IS 'comment on built-in object';
+ERROR:  must be owner of schema information_schema
+COMMENT ON TABLE information_schema.sql_features IS 'comment on built-in object';
+ERROR:  must be owner of table sql_features
+COMMENT ON TABLESPACE pg_global IS 'comment on built-in object';
+ERROR:  must be owner of tablespace pg_global
+COMMENT ON VIEW information_schema.foreign_table_options IS 'comment on built-in object';
+ERROR:  must be owner of view foreign_table_options
+COMMENT ON FUNCTION information_schema._pg_expandarray(IN anyarray, OUT x anyelement, OUT n int) IS 'comment on built-in object';
+ERROR:  must be owner of function information_schema._pg_expandarray
+-- attempt to comment on objects owned by superdba
+COMMENT ON AGGREGATE public.superdba_aggregate(int4) IS 'comment on superdba object';
+ERROR:  must be owner of aggregate public.superdba_aggregate
+COMMENT ON CAST (numeric AS text) IS 'comment on superdba object';
+ERROR:  must be owner of type numeric or type text
+COMMENT ON CAST (text AS numeric) IS 'comment on superdba object';
+ERROR:  must be owner of type text or type numeric
+COMMENT ON COLLATION public.superdba_collation IS 'comment on superdba object';
+ERROR:  must be owner of collation public.superdba_collation
+COMMENT ON CONSTRAINT superdba_domconstraint ON DOMAIN superdba_domain IS 'comment on superdba object';
+ERROR:  must be owner of type superdba_domain
+COMMENT ON CONVERSION superdba_conversion IS 'comment on superdba object';
+ERROR:  must be owner of conversion superdba_conversion
+COMMENT ON DOMAIN superdba_domain IS 'comment on superdba object';
+ERROR:  must be owner of type superdba_domain
+COMMENT ON EVENT TRIGGER superdba_event_trigger_start IS 'comment on superdba object';
+ERROR:  must be owner of event trigger superdba_event_trigger_start
+COMMENT ON EVENT TRIGGER superdba_event_trigger_end IS 'comment on superdba object';
+ERROR:  must be owner of event trigger superdba_event_trigger_end
+COMMENT ON EVENT TRIGGER superdba_event_trigger_rewrite IS 'comment on superdba object';
+ERROR:  must be owner of event trigger superdba_event_trigger_rewrite
+COMMENT ON EVENT TRIGGER superdba_event_trigger_drop IS 'comment on superdba object';
+ERROR:  must be owner of event trigger superdba_event_trigger_drop
+COMMENT ON FUNCTION superdba_event_trigger_func() IS 'comment on superdba object';
+ERROR:  must be owner of function superdba_event_trigger_func
+COMMENT ON FUNCTION superdba_trigger_func() IS 'comment on superdba object';
+ERROR:  must be owner of function superdba_trigger_func
+COMMENT ON TABLE public.superdba_table IS 'comment on superdba object';
+ERROR:  must be owner of table superdba_table
+COMMENT ON MATERIALIZED VIEW superdba_matview IS 'comment on superdba object';
+ERROR:  must be owner of materialized view superdba_matview
+COMMENT ON POLICY superdba_policy ON superdba_table IS 'comment on superdba object';
+ERROR:  must be owner of relation superdba_table
+COMMENT ON PUBLICATION superdba_publication IS 'comment on superdba object';
+ERROR:  must be owner of publication superdba_publication
+COMMENT ON RULE superdba_rule ON superdba_table IS 'comment on superdba object';
+ERROR:  must be owner of relation superdba_table
+COMMENT ON SCHEMA superdba_schema IS 'comment on superdba object';
+ERROR:  must be owner of schema superdba_schema
+COMMENT ON SEQUENCE superdba_sequence IS 'comment on superdba object';
+ERROR:  must be owner of sequence superdba_sequence
+COMMENT ON STATISTICS superdba_statistics IS 'comment on superdba object';
+ERROR:  must be owner of statistics object superdba_statistics
+COMMENT ON SUBSCRIPTION superdba_subscription IS 'comment on superdba object';
+ERROR:  must be owner of subscription superdba_subscription
+COMMENT ON CONSTRAINT superdba_constraint ON superdba_table IS 'comment on superdba object';
+ERROR:  must be owner of relation superdba_table
+COMMENT ON TEXT SEARCH PARSER superdba_tsparser IS 'comment on superdba object';
+ERROR:  must be superuser
+COMMENT ON TEXT SEARCH TEMPLATE superdba_tstemplate IS 'comment on superdba object';
+ERROR:  must be superuser
+COMMENT ON TEXT SEARCH CONFIGURATION superdba_tsconfiguration IS 'comment on superdba object';
+ERROR:  must be owner of text search configuration superdba_tsconfiguration
+COMMENT ON TEXT SEARCH DICTIONARY superdba_tsdictionary IS 'comment on superdba object';
+ERROR:  must be owner of text search dictionary superdba_tsdictionary
+COMMENT ON TRIGGER superdba_trigger ON superdba_table IS 'comment on superdba object';
+ERROR:  must be owner of relation superdba_table
+COMMENT ON TYPE superdba_type IS 'comment on superdba object';
+ERROR:  must be owner of type superdba_type
+COMMENT ON PROCEDURE superdba_procedure (t superdba_type) IS 'comment on superdba object';
+ERROR:  must be owner of procedure superdba_procedure
+COMMENT ON VIEW superdba_view IS 'comment on superdba object';
+ERROR:  must be owner of view superdba_view
+COMMENT ON FUNCTION superdba_type_eq (superdba_type, superdba_type) IS 'comment on superdba object';
+ERROR:  must be owner of function superdba_type_eq
+COMMENT ON OPERATOR === (superdba_type, superdba_type) IS 'comment on superdba object';
+ERROR:  must be owner of operator ===
+-- attempt to comment on objects owned by privileged user "noprivs"
+COMMENT ON AGGREGATE public.noprivs_aggregate(int4) IS 'comment on noprivs object';
+COMMENT ON COLLATION public.noprivs_collation IS 'comment on noprivs object';
+COMMENT ON CONSTRAINT noprivs_domconstraint ON DOMAIN noprivs_domain IS 'comment on noprivs object';
+COMMENT ON CONVERSION noprivs_conversion IS 'comment on noprivs object';
+COMMENT ON DOMAIN noprivs_domain IS 'comment on noprivs object';
+COMMENT ON FUNCTION noprivs_event_trigger_func() IS 'comment on noprivs object';
+COMMENT ON FUNCTION noprivs_trigger_func() IS 'comment on noprivs object';
+COMMENT ON TABLE public.noprivs_table IS 'comment on noprivs object';
+COMMENT ON TEXT SEARCH CONFIGURATION noprivs_tsconfiguration IS 'comment on noprivs object';
+COMMENT ON MATERIALIZED VIEW noprivs_matview IS 'comment on noprivs object';
+COMMENT ON POLICY noprivs_policy ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON RULE noprivs_rule ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON SCHEMA noprivs_schema IS 'comment on noprivs object';
+COMMENT ON SEQUENCE noprivs_sequence IS 'comment on noprivs object';
+COMMENT ON STATISTICS noprivs_statistics IS 'comment on noprivs object';
+COMMENT ON CONSTRAINT noprivs_constraint ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON TRIGGER noprivs_trigger ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON TYPE noprivs_type IS 'comment on noprivs object';
+COMMENT ON PROCEDURE noprivs_procedure (t noprivs_type) IS 'comment on noprivs object';
+COMMENT ON VIEW noprivs_view IS 'comment on noprivs object';
+COMMENT ON FUNCTION noprivs_type_eq (noprivs_type, noprivs_type) IS 'comment on noprivs object';
+COMMENT ON OPERATOR === (noprivs_type, noprivs_type) IS 'comment on noprivs object';
+RESET SESSION AUTHORIZATION;
+-- Check permissions for dba who has pg_manage_database_objects membership
+SET SESSION AUTHORIZATION dba;
+-- attempt to drop system built-in objects
+DROP ACCESS METHOD spgist;
+ERROR:  must be superuser
+DROP AGGREGATE pg_catalog.avg(int8);
+ERROR:  must be owner of aggregate pg_catalog.avg
+DROP CAST (int4 AS int8);
+ERROR:  must be owner of type integer or type bigint
+DROP COLLATION "nl_NL.UTF-8";
+ERROR:  must be owner of collation nl_NL.UTF-8
+DROP CONVERSION utf8_to_windows_1251;
+ERROR:  must be owner of conversion utf8_to_windows_1251
+DROP DATABASE template1;
+ERROR:  must be owner of database template1
+DROP DOMAIN information_schema.cardinal_number;
+ERROR:  must be owner of type information_schema.cardinal_number
+DROP EXTENSION plpgsql;
+ERROR:  must be owner of extension plpgsql
+DROP LANGUAGE sql;
+ERROR:  must be owner of language sql
+DROP OPERATOR CLASS float4_ops USING btree;
+ERROR:  must be owner of operator class btree.float4_ops
+DROP OPERATOR FAMILY float_ops USING btree;
+ERROR:  must be owner of operator family btree.float_ops
+DROP ROLE pg_read_server_files;
+ERROR:  permission denied to drop role
+DROP RULE pg_settings_u ON pg_catalog.pg_settings;
+ERROR:  must be owner of relation pg_settings
+DROP TABLE pg_catalog.pg_class;
+ERROR:  must be owner of table pg_class
+DROP SCHEMA information_schema;
+ERROR:  must be owner of schema information_schema
+DROP TABLE information_schema.sql_features;
+ERROR:  must be owner of table sql_features
+DROP TABLESPACE pg_global;
+ERROR:  must be owner of tablespace pg_global
+DROP VIEW information_schema.foreign_table_options;
+ERROR:  must be owner of view foreign_table_options
+DROP FUNCTION information_schema._pg_expandarray(IN anyarray, OUT x anyelement, OUT n int);
+ERROR:  must be owner of function information_schema._pg_expandarray
+-- attempt to drop objects owned by superdba
+DROP AGGREGATE public.superdba_aggregate(int4);
+ERROR:  must be owner of aggregate public.superdba_aggregate
+DROP CAST (numeric AS text);
+ERROR:  must be owner of type numeric or type text
+DROP CAST (text AS numeric);
+ERROR:  must be owner of type text or type numeric
+DROP TABLE superdba_partA_M;
+ERROR:  must be owner of table superdba_parta_m
+DROP TABLE superdba_partM_Z;
+ERROR:  must be owner of table superdba_partm_z
+DROP TABLE superdba_partitioned;
+ERROR:  must be owner of table superdba_partitioned
+DROP CONVERSION superdba_conversion;
+ERROR:  must be owner of conversion superdba_conversion
+DROP DOMAIN superdba_domain;
+ERROR:  must be owner of type superdba_domain
+DROP EVENT TRIGGER superdba_event_trigger_start;
+ERROR:  must be owner of event trigger superdba_event_trigger_start
+DROP EVENT TRIGGER superdba_event_trigger_end;
+ERROR:  must be owner of event trigger superdba_event_trigger_end
+DROP EVENT TRIGGER superdba_event_trigger_rewrite;
+ERROR:  must be owner of event trigger superdba_event_trigger_rewrite
+DROP EVENT TRIGGER superdba_event_trigger_drop;
+ERROR:  must be owner of event trigger superdba_event_trigger_drop
+DROP FUNCTION superdba_event_trigger_func();
+ERROR:  must be owner of function superdba_event_trigger_func
+DROP INDEX superdba_index;
+ERROR:  must be owner of index superdba_index
+DROP MATERIALIZED VIEW superdba_matview;
+ERROR:  must be owner of materialized view superdba_matview
+DROP POLICY superdba_policy ON superdba_table;
+ERROR:  must be owner of relation superdba_table
+DROP PUBLICATION superdba_publication;
+ERROR:  must be owner of publication superdba_publication
+DROP RULE superdba_rule ON superdba_table;
+ERROR:  must be owner of relation superdba_table
+DROP SCHEMA superdba_schema;
+ERROR:  must be owner of schema superdba_schema
+DROP STATISTICS superdba_statistics;
+ERROR:  must be owner of statistics object superdba_statistics
+DROP SUBSCRIPTION superdba_subscription;
+ERROR:  must be owner of subscription superdba_subscription
+DROP VIEW superdba_view;
+ERROR:  must be owner of view superdba_view
+ALTER TABLE superdba_table DROP CONSTRAINT superdba_constraint;
+ERROR:  must be owner of table superdba_table
+DROP TABLE public.superdba_table;
+ERROR:  must be owner of table superdba_table
+DROP COLLATION public.superdba_collation;
+ERROR:  must be owner of collation public.superdba_collation
+DROP SEQUENCE superdba_sequence;
+ERROR:  must be owner of sequence superdba_sequence
+DROP TRIGGER superdba_trigger ON superdba_table;
+ERROR:  must be owner of relation superdba_table
+DROP FUNCTION superdba_trigger_func();
+ERROR:  must be owner of function superdba_trigger_func
+DROP TEXT SEARCH CONFIGURATION superdba_tsconfiguration;
+ERROR:  must be owner of text search configuration superdba_tsconfiguration
+DROP TEXT SEARCH DICTIONARY superdba_tsdictionary;
+ERROR:  must be owner of text search dictionary superdba_tsdictionary
+DROP TEXT SEARCH PARSER superdba_tsparser;
+ERROR:  must be superuser
+DROP TEXT SEARCH TEMPLATE superdba_tstemplate;
+ERROR:  must be superuser
+DROP TRANSFORM FOR bigint LANGUAGE SQL;
+ERROR:  must be owner of type bigint
+DROP OPERATOR === (superdba_type, superdba_type);
+ERROR:  must be owner of operator ===
+DROP FUNCTION superdba_type_eq (superdba_type, superdba_type);
+ERROR:  must be owner of function superdba_type_eq
+DROP PROCEDURE superdba_procedure (t superdba_type);
+ERROR:  must be owner of procedure superdba_procedure
+DROP TYPE superdba_type;
+ERROR:  must be owner of type superdba_type
+-- attempt to drop objects owned by unprivileged user "noprivs"
+DROP AGGREGATE public.noprivs_aggregate(int4);
+DROP TABLE noprivs_partA_M;
+DROP TABLE noprivs_partM_Z;
+DROP TABLE noprivs_partitioned;
+DROP CONVERSION noprivs_conversion;
+DROP DOMAIN noprivs_domain;
+DROP FUNCTION noprivs_event_trigger_func();
+DROP INDEX noprivs_index;
+DROP MATERIALIZED VIEW noprivs_matview;
+DROP POLICY noprivs_policy ON noprivs_table;
+DROP RULE noprivs_rule ON noprivs_table;
+DROP SCHEMA noprivs_schema;
+DROP STATISTICS noprivs_statistics;
+DROP VIEW noprivs_view;
+ALTER TABLE noprivs_table DROP CONSTRAINT noprivs_constraint;
+DROP TEXT SEARCH CONFIGURATION noprivs_tsconfiguration;
+DROP TEXT SEARCH DICTIONARY noprivs_tsdictionary;
+DROP TRIGGER noprivs_trigger ON noprivs_table;
+DROP TABLE public.noprivs_table;
+DROP COLLATION public.noprivs_collation;
+DROP SEQUENCE noprivs_sequence;
+DROP FUNCTION noprivs_trigger_func();
+DROP OPERATOR === (noprivs_type, noprivs_type);
+DROP FUNCTION noprivs_type_eq (noprivs_type, noprivs_type);
+DROP PROCEDURE noprivs_procedure (t noprivs_type);
+DROP TYPE noprivs_type;
+-- attempt to drop users
+DROP USER noprivs;
+ERROR:  permission denied to drop role
+DROP USER superdba;
+ERROR:  permission denied to drop role
+RESET SESSION AUTHORIZATION;
+-- drop remaining objects owned by superdba
+DROP AGGREGATE public.superdba_aggregate(int4);
+DROP CAST (numeric AS text);
+DROP CAST (text AS numeric);
+DROP TABLE superdba_partA_M;
+DROP TABLE superdba_partM_Z;
+DROP TABLE superdba_partitioned;
+DROP CONVERSION superdba_conversion;
+DROP DOMAIN superdba_domain;
+DROP EVENT TRIGGER superdba_event_trigger_start;
+DROP EVENT TRIGGER superdba_event_trigger_end;
+DROP EVENT TRIGGER superdba_event_trigger_rewrite;
+DROP EVENT TRIGGER superdba_event_trigger_drop;
+DROP FUNCTION superdba_event_trigger_func();
+DROP INDEX superdba_index;
+DROP MATERIALIZED VIEW superdba_matview;
+DROP POLICY superdba_policy ON superdba_table;
+DROP PUBLICATION superdba_publication;
+DROP RULE superdba_rule ON superdba_table;
+DROP SCHEMA superdba_schema;
+DROP STATISTICS superdba_statistics;
+DROP SUBSCRIPTION superdba_subscription;
+DROP TRIGGER superdba_trigger ON superdba_table;
+DROP FUNCTION superdba_trigger_func();
+DROP VIEW superdba_view;
+ALTER TABLE superdba_table DROP CONSTRAINT superdba_constraint;
+DROP TABLE public.superdba_table;
+DROP COLLATION public.superdba_collation;
+DROP SEQUENCE superdba_sequence;
+DROP TEXT SEARCH CONFIGURATION superdba_tsconfiguration;
+DROP TEXT SEARCH DICTIONARY superdba_tsdictionary;
+DROP TEXT SEARCH PARSER superdba_tsparser;
+DROP TEXT SEARCH TEMPLATE superdba_tstemplate;
+DROP TRANSFORM FOR bigint LANGUAGE SQL;
+DROP OPERATOR === (superdba_type, superdba_type);
+DROP FUNCTION superdba_type_eq (superdba_type, superdba_type);
+DROP PROCEDURE superdba_procedure (t superdba_type);
+DROP TYPE superdba_type;
+-- finished tests relying on these users
+DROP USER dba;
+DROP USER noprivs;
+DROP USER superdba;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 8fd9d215ff..b47b7dee8c 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -103,7 +103,7 @@ test: publication subscription
 # ----------
 # Another group of parallel tests
 # ----------
-test: select_views portals_p2 foreign_key cluster dependency guc bitmapops combocid tsearch tsdicts foreign_data window xmlmap functional_deps advisory_lock indirect_toast equivclass
+test: select_views portals_p2 foreign_key cluster dependency guc bitmapops combocid tsearch tsdicts foreign_data window xmlmap functional_deps advisory_lock indirect_toast equivclass role_priv
 
 # ----------
 # Another group of parallel tests (JSON related)
diff --git a/src/test/regress/sql/role_priv.sql b/src/test/regress/sql/role_priv.sql
new file mode 100644
index 0000000000..0a75a6a549
--- /dev/null
+++ b/src/test/regress/sql/role_priv.sql
@@ -0,0 +1,879 @@
+CREATE USER dba NOSUPERUSER;
+GRANT pg_manage_database_objects TO dba;
+
+CREATE USER noprivs NOSUPERUSER;
+CREATE USER superdba SUPERUSER;
+
+CREATE SCHEMA noprivs_schema;
+ALTER SCHEMA noprivs_schema OWNER TO noprivs;
+
+SET SESSION AUTHORIZATION superdba;
+CREATE AGGREGATE superdba_aggregate (
+   sfunc = int4_avg_accum,
+   basetype = int4,
+   stype = _int8,
+   finalfunc = int8_avg,
+   initcond1 = '{0,0}'
+);
+CREATE CAST (numeric AS text) WITHOUT FUNCTION;
+CREATE CAST (text AS numeric) WITH INOUT;
+CREATE COLLATION superdba_collation FROM "C";
+CREATE CONVERSION superdba_conversion FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
+CREATE DOMAIN superdba_domain numeric(8,2) CONSTRAINT superdba_domconstraint CHECK(VALUE != 42);
+CREATE FUNCTION superdba_event_trigger_func() RETURNS EVENT_TRIGGER AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER superdba_event_trigger_start ON ddl_command_start
+	WHEN TAG IN ('ALTER ACCESS METHOD')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE EVENT TRIGGER superdba_event_trigger_end ON ddl_command_end
+	WHEN TAG IN ('ALTER FOREIGN TABLE')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE EVENT TRIGGER superdba_event_trigger_rewrite ON table_rewrite
+	WHEN TAG IN ('ALTER TABLE')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE EVENT TRIGGER superdba_event_trigger_drop ON sql_drop
+	WHEN TAG IN ('DROP INDEX')
+	EXECUTE FUNCTION superdba_event_trigger_func();
+CREATE SEQUENCE superdba_sequence;
+CREATE TABLE superdba_table (
+	id INTEGER DEFAULT nextval('superdba_sequence'),
+	id2 INTEGER GENERATED ALWAYS AS (length(str)) STORED,
+	id3 INTEGER GENERATED BY DEFAULT AS IDENTITY (NO CYCLE),
+	str TEXT,
+	ary INTEGER[],
+	adr INET,
+	CONSTRAINT superdba_constraint CHECK (length(str) < 100)
+);
+CREATE TABLE superdba_partitioned (
+	LIKE superdba_table
+) PARTITION BY RANGE (str COLLATE superdba_collation);
+CREATE TABLE superdba_partA_M PARTITION OF superdba_partitioned FOR VALUES FROM ('A') TO ('M');
+CREATE TABLE superdba_partM_Z PARTITION OF superdba_partitioned FOR VALUES FROM ('M') TO ('Z');
+CREATE INDEX superdba_index ON superdba_table (str);
+CREATE MATERIALIZED VIEW superdba_matview AS SELECT id, str, ary FROM superdba_table;
+CREATE POLICY superdba_policy ON superdba_table AS RESTRICTIVE;
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION superdba_publication FOR TABLE superdba_table;
+RESET client_min_messages;
+CREATE RULE superdba_rule AS ON UPDATE TO superdba_table DO INSTEAD NOTHING;
+CREATE SCHEMA superdba_schema;
+CREATE STATISTICS superdba_statistics ON (length(str)) FROM superdba_table;
+CREATE SUBSCRIPTION superdba_subscription CONNECTION 'dbname=none' PUBLICATION none WITH (connect = false, slot_name = NONE);
+CREATE TEXT SEARCH PARSER superdba_tsparser (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE superdba_tstemplate (lexize=dsimple_lexize);
+CREATE TEXT SEARCH CONFIGURATION superdba_tsconfiguration (parser = superdba_tsparser);
+CREATE TEXT SEARCH DICTIONARY superdba_tsdictionary (template = superdba_tstemplate);
+CREATE TRANSFORM FOR bigint LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION superdba_trigger_func() RETURNS trigger AS $$ BEGIN RETURN NEW; END; $$ LANGUAGE PLPGSQL;
+CREATE TRIGGER superdba_trigger BEFORE INSERT ON superdba_table EXECUTE FUNCTION superdba_trigger_func();
+CREATE TYPE superdba_type AS ENUM ('charge', 'charm', 'color', 'mass', 'spin');
+CREATE FUNCTION superdba_type_eq (leftarg superdba_type, rightarg superdba_type) RETURNS BOOLEAN AS $$
+	SELECT $1::text = $2::text;
+$$ LANGUAGE sql;
+CREATE OPERATOR === (
+	FUNCTION = superdba_type_eq,
+	LEFTARG = superdba_type,
+	RIGHTARG = superdba_type
+);
+CREATE PROCEDURE superdba_procedure (t superdba_type) AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE VIEW superdba_view AS SELECT str, ary FROM superdba_table;
+RESET SESSION AUTHORIZATION;
+
+-- create objects owned by unprivileged user "noprivs"
+SET SESSION AUTHORIZATION noprivs;
+
+CREATE AGGREGATE noprivs_aggregate (
+   sfunc = int4_avg_accum,
+   basetype = int4,
+   stype = _int8,
+   finalfunc = int8_avg,
+   initcond1 = '{0,0}'
+);
+CREATE CAST (timestamp AS tsquery) WITHOUT FUNCTION;
+CREATE CAST (tsquery AS timestamp) WITH INOUT;
+CREATE COLLATION noprivs_collation FROM "C";
+CREATE CONVERSION noprivs_conversion FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
+CREATE DOMAIN noprivs_domain numeric(10,4) CONSTRAINT noprivs_domconstraint CHECK(VALUE != 42);
+CREATE FUNCTION noprivs_event_trigger_func() RETURNS EVENT_TRIGGER AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE EVENT TRIGGER noprivs_event_trigger_start ON ddl_command_start
+	WHEN TAG IN ('REVOKE')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+CREATE EVENT TRIGGER noprivs_event_trigger_end ON ddl_command_end
+	WHEN TAG IN ('SECURITY LABLE')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+CREATE EVENT TRIGGER noprivs_event_trigger_rewrite ON table_rewrite
+	WHEN TAG IN ('ALTER TABLE')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+CREATE EVENT TRIGGER noprivs_event_trigger_drop ON sql_drop
+	WHEN TAG IN ('DROP TRANSFORM')
+	EXECUTE FUNCTION noprivs_event_trigger_func();
+CREATE SEQUENCE noprivs_sequence;
+CREATE TABLE noprivs_table (
+	id INTEGER DEFAULT nextval('noprivs_sequence'),
+	id2 INTEGER GENERATED ALWAYS AS (length(str)) STORED,
+	id3 INTEGER GENERATED BY DEFAULT AS IDENTITY (NO CYCLE),
+	str TEXT,
+	ary INTEGER[],
+	adr INET,
+	CONSTRAINT noprivs_constraint CHECK (length(str) < 100)
+);
+CREATE TABLE noprivs_partitioned (
+	LIKE noprivs_table
+) PARTITION BY RANGE (str COLLATE noprivs_collation);
+CREATE TABLE noprivs_partA_M PARTITION OF noprivs_partitioned FOR VALUES FROM ('A') TO ('M');
+CREATE TABLE noprivs_partM_Z PARTITION OF noprivs_partitioned FOR VALUES FROM ('M') TO ('Z');
+CREATE INDEX noprivs_index ON noprivs_table (str);
+CREATE MATERIALIZED VIEW noprivs_matview AS SELECT id, str, ary FROM noprivs_table;
+CREATE POLICY noprivs_policy ON noprivs_table AS RESTRICTIVE;
+SET client_min_messages = 'ERROR';
+CREATE PUBLICATION noprivs_publication FOR TABLE noprivs_table;
+RESET client_min_messages;
+CREATE RULE noprivs_rule AS ON UPDATE TO noprivs_table DO INSTEAD NOTHING;
+CREATE SCHEMA noprivs_schema;
+CREATE STATISTICS noprivs_statistics ON (length(str)) FROM noprivs_table;
+CREATE SUBSCRIPTION noprivs_subscription CONNECTION 'dbname=none' PUBLICATION none WITH (connect = false, slot_name = NONE);
+CREATE TEXT SEARCH PARSER noprivs_tsparser (start = prsd_start, gettoken = prsd_nexttoken, end = prsd_end, lextypes = prsd_lextype);
+CREATE TEXT SEARCH TEMPLATE noprivs_tstemplate (lexize=dsimple_lexize);
+CREATE TEXT SEARCH CONFIGURATION noprivs_tsconfiguration (parser = superdba_tsparser);
+CREATE TEXT SEARCH DICTIONARY noprivs_tsdictionary (template = superdba_tstemplate);
+CREATE TRANSFORM FOR int2 LANGUAGE SQL (
+    FROM SQL WITH FUNCTION prsd_lextype(internal),
+    TO SQL WITH FUNCTION int8recv(internal));
+CREATE FUNCTION noprivs_trigger_func() RETURNS trigger AS $$ BEGIN RETURN NEW; END; $$ LANGUAGE PLPGSQL;
+CREATE TRIGGER noprivs_trigger BEFORE INSERT ON noprivs_table EXECUTE FUNCTION noprivs_trigger_func();
+CREATE TYPE noprivs_type AS ENUM ('charge', 'charm', 'color', 'mass', 'spin');
+CREATE FUNCTION noprivs_type_eq (leftarg noprivs_type, rightarg noprivs_type) RETURNS BOOLEAN AS $$
+	SELECT $1::text = $2::text;
+$$ LANGUAGE sql;
+CREATE OPERATOR === (
+	FUNCTION = noprivs_type_eq,
+	LEFTARG = noprivs_type,
+	RIGHTARG = noprivs_type
+);
+CREATE PROCEDURE noprivs_procedure (t noprivs_type) AS $$ BEGIN RETURN; END; $$ LANGUAGE PLPGSQL;
+CREATE VIEW noprivs_view AS SELECT str, ary FROM noprivs_table;
+
+RESET SESSION AUTHORIZATION;
+-- Check permissions for dba who has pg_manage_database_objects membership
+SET SESSION AUTHORIZATION dba;
+
+-- attempt to alter system built-in objects
+ALTER AGGREGATE pg_catalog.avg(int8) RENAME TO avg_renamed;
+ALTER AGGREGATE pg_catalog.avg(int8) OWNER TO noprivs;
+ALTER AGGREGATE pg_catalog.avg(int8) OWNER TO dba;
+ALTER AGGREGATE pg_catalog.avg(int8) OWNER TO superdba;
+ALTER AGGREGATE pg_catalog.avg(int8) SET SCHEMA noprivs_schema;
+
+ALTER TABLE pg_catalog.pg_class RENAME COLUMN relname TO relname_renamed;
+ALTER TABLE pg_catalog.pg_class ADD COLUMN othercolumn TEXT;
+ALTER TABLE pg_catalog.pg_class DROP COLUMN reloptions;
+ALTER TABLE pg_catalog.pg_class ALTER COLUMN relpartbound SET STATISTICS 200;
+ALTER TABLE pg_catalog.pg_class ALTER COLUMN relpartbound SET COMPRESSION pglz;
+
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 RENAME TO utf8_to_iso_8859_1_renamed;
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 OWNER TO noprivs;
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 OWNER TO dba;
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 OWNER TO superdba;
+ALTER CONVERSION pg_catalog.utf8_to_iso_8859_1 SET SCHEMA noprivs_schema;
+
+ALTER DOMAIN information_schema.cardinal_number SET DEFAULT 0;
+ALTER DOMAIN information_schema.cardinal_number SET NOT NULL;
+ALTER DOMAIN information_schema.cardinal_number ADD CHECK (VALUE >= 0);
+ALTER DOMAIN information_schema.cardinal_number RENAME TO cardinal_number_renamed;
+ALTER DOMAIN information_schema.cardinal_number OWNER TO noprivs;
+ALTER DOMAIN information_schema.cardinal_number OWNER TO dba;
+ALTER DOMAIN information_schema.cardinal_number OWNER TO superdba;
+ALTER DOMAIN information_schema.cardinal_number SET SCHEMA noprivs_schema;
+
+ALTER EXTENSION plpgsql UPDATE TO 'bogus_plpgsql_version';
+ALTER EXTENSION plpgsql SET SCHEMA noprivs_schema;
+ALTER EXTENSION plpgsql ADD TABLE pg_catalog.pg_class;
+ALTER EXTENSION plpgsql DROP TABLE pg_catalog.pg_class;
+
+ALTER RULE pg_settings_u ON pg_catalog.pg_settings RENAME TO pg_settings_u_renamed;
+ALTER RULE pg_settings_u_renamed ON pg_catalog.pg_settings RENAME TO pg_settings_u;
+
+ALTER SCHEMA information_schema OWNER TO noprivs;
+ALTER SCHEMA information_schema OWNER TO dba;
+ALTER SCHEMA information_schema OWNER TO superdba;
+ALTER SCHEMA information_schema RENAME TO information_schema_renamed;
+
+ALTER TABLE information_schema.sql_features RENAME TO sql_features_renamed;
+ALTER TABLE information_schema.sql_features OWNER TO noprivs;
+ALTER TABLE information_schema.sql_features OWNER TO dba;
+ALTER TABLE information_schema.sql_features OWNER TO superdba;
+ALTER TABLE information_schema.sql_features DISABLE ROW LEVEL SECURITY;
+ALTER TABLE information_schema.sql_features ENABLE ROW LEVEL SECURITY;
+ALTER TABLE information_schema.sql_features FORCE ROW LEVEL SECURITY;
+ALTER TABLE information_schema.sql_features NO FORCE ROW LEVEL SECURITY;
+ALTER TABLE information_schema.sql_features CLUSTER ON superdba_index;
+ALTER TABLE information_schema.sql_features SET WITHOUT CLUSTER;
+ALTER TABLE information_schema.sql_features SET WITHOUT OIDS;
+ALTER TABLE information_schema.sql_features SET SCHEMA noprivs_schema;
+
+ALTER VIEW information_schema.foreign_table_options ALTER COLUMN foreign_table_name SET DEFAULT 'something';
+ALTER VIEW information_schema.foreign_table_options ALTER COLUMN foreign_table_name DROP DEFAULT;
+ALTER VIEW information_schema.foreign_table_options OWNER TO noprivs;
+ALTER VIEW information_schema.foreign_table_options OWNER TO dba;
+ALTER VIEW information_schema.foreign_table_options OWNER TO superdba;
+ALTER VIEW information_schema.foreign_table_options RENAME COLUMN foreign_table_name TO foreign_table_name_renamed;
+ALTER VIEW information_schema.foreign_table_options RENAME COLUMN foreign_table_name_renamed TO foreign_table_name;
+ALTER VIEW information_schema.foreign_table_options RENAME TO foreign_table_options_renamed;
+ALTER VIEW information_schema.foreign_table_options SET SCHEMA noprivs_schema;
+ALTER VIEW information_schema.foreign_table_options SET (check_option = local);
+ALTER VIEW information_schema.foreign_table_options SET (check_option = cascaded);
+ALTER VIEW information_schema.foreign_table_options RESET (check_option);
+ALTER VIEW information_schema.foreign_table_options SET (security_barrier = on);
+ALTER VIEW information_schema.foreign_table_options SET (security_barrier = off);
+ALTER VIEW information_schema.foreign_table_options RESET (security_barrier);
+
+-- attempt to alter objects owned by superdba
+ALTER AGGREGATE public.superdba_aggregate(int4) RENAME TO superdba_aggregate_renamed;
+ALTER AGGREGATE public.superdba_aggregate(int4) OWNER TO noprivs;
+ALTER AGGREGATE public.superdba_aggregate(int4) OWNER TO dba;
+ALTER AGGREGATE public.superdba_aggregate(int4) OWNER TO superdba;
+ALTER AGGREGATE public.superdba_aggregate(int4) SET SCHEMA noprivs_schema;
+
+ALTER COLLATION public.superdba_collation RENAME TO superdba_collation_renamed;
+ALTER COLLATION public.superdba_collation OWNER TO noprivs;
+ALTER COLLATION public.superdba_collation OWNER TO dba;
+ALTER COLLATION public.superdba_collation OWNER TO superdba;
+ALTER COLLATION public.superdba_collation SET SCHEMA noprivs_schema;
+
+ALTER CONVERSION public.superdba_conversion RENAME TO superdba_conversion_renamed;
+ALTER CONVERSION public.superdba_conversion OWNER TO noprivs;
+ALTER CONVERSION public.superdba_conversion OWNER TO dba;
+ALTER CONVERSION public.superdba_conversion OWNER TO superdba;
+ALTER CONVERSION public.superdba_conversion SET SCHEMA noprivs_schema;
+
+ALTER DOMAIN public.superdba_domain SET DEFAULT 0;
+ALTER DOMAIN public.superdba_domain SET NOT NULL;
+ALTER DOMAIN public.superdba_domain ADD CHECK (VALUE >= 0);
+ALTER DOMAIN public.superdba_domain RENAME TO superdba_domain_renamed;
+ALTER DOMAIN public.superdba_domain OWNER TO noprivs;
+ALTER DOMAIN public.superdba_domain OWNER TO dba;
+ALTER DOMAIN public.superdba_domain OWNER TO superdba;
+ALTER DOMAIN public.superdba_domain SET SCHEMA noprivs_schema;
+ALTER DOMAIN public.superdba_domain RENAME CONSTRAINT superdba_domconstraint TO superdba_domconstraint_renamed;
+ALTER DOMAIN public.superdba_domain ADD CONSTRAINT otherconstraint CHECK (VALUE != 5);
+ALTER DOMAIN public.superdba_domain DROP CONSTRAINT otherconstraint;
+
+ALTER EVENT TRIGGER superdba_event_trigger_start DISABLE;
+ALTER EVENT TRIGGER superdba_event_trigger_start ENABLE;
+ALTER EVENT TRIGGER superdba_event_trigger_end ENABLE REPLICA;
+ALTER EVENT TRIGGER superdba_event_trigger_end ENABLE ALWAYS;
+ALTER EVENT TRIGGER superdba_event_trigger_rewrite OWNER TO noprivs;
+ALTER EVENT TRIGGER superdba_event_trigger_rewrite OWNER TO dba;
+ALTER EVENT TRIGGER superdba_event_trigger_rewrite OWNER TO superdba;
+ALTER EVENT TRIGGER superdba_event_trigger_drop RENAME TO superdba_event_trigger_drop_renamed;
+
+ALTER MATERIALIZED VIEW public.superdba_matview SET SCHEMA noprivs_schema;
+ALTER MATERIALIZED VIEW public.superdba_matview RENAME TO superdba_matview_renamed;
+ALTER MATERIALIZED VIEW public.superdba_matview RENAME ary TO ary_renamed;
+ALTER MATERIALIZED VIEW public.superdba_matview ALTER str SET STATISTICS 20;
+ALTER MATERIALIZED VIEW public.superdba_matview ALTER str SET STORAGE external;
+ALTER MATERIALIZED VIEW public.superdba_matview ALTER str SET COMPRESSION pglz;
+ALTER MATERIALIZED VIEW public.superdba_matview SET WITHOUT CLUSTER;
+ALTER MATERIALIZED VIEW public.superdba_matview OWNER TO noprivs;
+ALTER MATERIALIZED VIEW public.superdba_matview OWNER TO dba;
+ALTER MATERIALIZED VIEW public.superdba_matview OWNER TO superdba;
+
+ALTER POLICY superdba_policy ON public.superdba_table RENAME TO superdba_policy_renamed;
+
+ALTER PUBLICATION superdba_publication DROP TABLE superdba_table;
+ALTER PUBLICATION superdba_publication SET (publish = insert);
+ALTER PUBLICATION superdba_publication OWNER TO noprivs;
+ALTER PUBLICATION superdba_publication OWNER TO dba;
+ALTER PUBLICATION superdba_publication OWNER TO superdba;
+ALTER PUBLICATION superdba_publication RENAME TO superdba_publication_renamed;
+
+ALTER RULE superdba_rule ON public.superdba_table RENAME TO superdba_rule_renamed;
+
+ALTER SCHEMA superdba_schema OWNER TO noprivs;
+ALTER SCHEMA superdba_schema OWNER TO dba;
+ALTER SCHEMA superdba_schema OWNER TO superdba;
+ALTER SCHEMA superdba_schema RENAME TO superdba_schema_renamed;
+
+ALTER SEQUENCE public.superdba_sequence RESTART;
+ALTER SEQUENCE public.superdba_sequence INCREMENT BY 3;
+ALTER SEQUENCE public.superdba_sequence OWNER TO noprivs;
+ALTER SEQUENCE public.superdba_sequence OWNER TO dba;
+ALTER SEQUENCE public.superdba_sequence OWNER TO superdba;
+ALTER SEQUENCE public.superdba_sequence SET SCHEMA noprivs_schema;
+ALTER SEQUENCE public.superdba_sequence RENAME TO superdba_sequence_renamed;
+
+ALTER STATISTICS public.superdba_statistics SET STATISTICS 10000;
+ALTER STATISTICS public.superdba_statistics OWNER TO noprivs;
+ALTER STATISTICS public.superdba_statistics OWNER TO dba;
+ALTER STATISTICS public.superdba_statistics OWNER TO superdba;
+ALTER STATISTICS public.superdba_statistics RENAME TO superdba_statistics_renamed;
+ALTER STATISTICS public.superdba_statistics SET SCHEMA noprivs_schema;
+
+ALTER SUBSCRIPTION superdba_subscription CONNECTION 'dbname=other';
+ALTER SUBSCRIPTION superdba_subscription SET PUBLICATION otherpub;
+ALTER SUBSCRIPTION superdba_subscription ADD PUBLICATION anotherpub;
+ALTER SUBSCRIPTION superdba_subscription DROP PUBLICATION andere;
+ALTER SUBSCRIPTION superdba_subscription DISABLE;
+ALTER SUBSCRIPTION superdba_subscription SET (slot_name = otherslot);
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = remote_apply);
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = on);
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = remote_write);
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = local);
+ALTER SUBSCRIPTION superdba_subscription SET (synchronous_commit = off);
+ALTER SUBSCRIPTION superdba_subscription SET (binary = on);
+ALTER SUBSCRIPTION superdba_subscription SET (binary = off);
+ALTER SUBSCRIPTION superdba_subscription SET (streaming = on);
+ALTER SUBSCRIPTION superdba_subscription SET (streaming = off);
+ALTER SUBSCRIPTION superdba_subscription OWNER TO noprivs;
+ALTER SUBSCRIPTION superdba_subscription OWNER TO dba;
+ALTER SUBSCRIPTION superdba_subscription OWNER TO superdba;
+ALTER SUBSCRIPTION superdba_subscription RENAME TO superdba_subscription_renamed;
+
+ALTER TABLE public.superdba_table RENAME COLUMN str TO str_renamed;
+ALTER TABLE public.superdba_table ADD COLUMN othercolumn TEXT;
+ALTER TABLE public.superdba_table DROP COLUMN othercolumn;
+ALTER TABLE public.superdba_table DROP COLUMN adr;
+ALTER TABLE public.superdba_table ADD COLUMN adr INET;
+ALTER TABLE public.superdba_table ALTER COLUMN ary SET STATISTICS 200;
+ALTER TABLE public.superdba_table ALTER COLUMN ary SET COMPRESSION pglz;
+ALTER TABLE public.superdba_table VALIDATE CONSTRAINT superdba_constraint;
+ALTER TABLE public.superdba_table DISABLE ROW LEVEL SECURITY;
+ALTER TABLE public.superdba_table ENABLE ROW LEVEL SECURITY;
+ALTER TABLE public.superdba_table FORCE ROW LEVEL SECURITY;
+ALTER TABLE public.superdba_table NO FORCE ROW LEVEL SECURITY;
+ALTER TABLE public.superdba_table CLUSTER ON superdba_index;
+ALTER TABLE public.superdba_table SET WITHOUT CLUSTER;
+ALTER TABLE public.superdba_table SET WITHOUT OIDS;
+ALTER TABLE public.superdba_table RENAME TO superdba_table_renamed;
+ALTER TABLE public.superdba_table OWNER TO noprivs;
+ALTER TABLE public.superdba_table OWNER TO dba;
+ALTER TABLE public.superdba_table OWNER TO superdba;
+ALTER TABLE public.superdba_table SET SCHEMA noprivs_schema;
+ALTER TABLE public.superdba_table SET TABLESPACE pg_global;
+
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION pg_catalog.pg_class FOR VALUES FROM ('0') TO ('9');
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_table FOR VALUES FROM ('0') TO ('9');
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_table;
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_partA_M;
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.superdba_partitioned INHERIT public.superdba_table;
+ALTER TABLE public.superdba_partitioned NO INHERIT public.superdba_table;
+ALTER TABLE public.superdba_partitioned REPLICA IDENTITY FULL;
+ALTER TABLE public.superdba_partitioned REPLICA IDENTITY NOTHING;
+
+ALTER TABLE public.superdba_partM_Z ATTACH PARTITION public.superdba_table FOR VALUES FROM ('0') TO ('9');
+ALTER TABLE public.superdba_partM_Z DETACH PARTITION public.superdba_table;
+ALTER TABLE public.superdba_partM_Z DETACH PARTITION public.superdba_partA_M;
+ALTER TABLE public.superdba_partM_Z ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.superdba_partM_Z INHERIT public.superdba_table;
+ALTER TABLE public.superdba_partM_Z NO INHERIT public.superdba_table;
+ALTER TABLE public.superdba_partM_Z REPLICA IDENTITY FULL;
+ALTER TABLE public.superdba_partM_Z REPLICA IDENTITY NOTHING;
+
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.superdba_partitioned ATTACH PARTITION public.noprivs_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_partA_M;
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.superdba_partA_M;
+ALTER TABLE public.superdba_partitioned DETACH PARTITION public.noprivs_partA_M;
+
+ALTER TEXT SEARCH PARSER public.superdba_tsparser SET SCHEMA noprivs_schema;
+ALTER TEXT SEARCH PARSER public.superdba_tsparser RENAME TO superdba_tsparser_renamed;
+
+ALTER TEXT SEARCH TEMPLATE public.superdba_tstemplate SET SCHEMA noprivs_schema;
+ALTER TEXT SEARCH TEMPLATE public.superdba_tstemplate RENAME TO superdba_tstemplate_renamed;
+
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration OWNER TO noprivs;
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration OWNER TO dba;
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration OWNER TO superdba;
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration SET SCHEMA noprivs_schema;
+ALTER TEXT SEARCH CONFIGURATION public.superdba_tsconfiguration RENAME TO superdba_tsconfiguration_renamed;
+
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary OWNER TO noprivs;
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary OWNER TO dba;
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary OWNER TO superdba;
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary SET SCHEMA noprivs_schema;
+ALTER TEXT SEARCH DICTIONARY public.superdba_tsdictionary RENAME TO superdba_tsdictionary_renamed;
+
+ALTER TRIGGER superdba_trigger ON public.superdba_table RENAME TO superdba_trigger_renamed;
+ALTER TRIGGER superdba_trigger ON public.superdba_table DEPENDS ON EXTENSION plpgsql;
+ALTER TRIGGER superdba_trigger ON public.superdba_table NO DEPENDS ON EXTENSION plpgsql;
+
+ALTER TYPE public.superdba_type OWNER TO noprivs;
+ALTER TYPE public.superdba_type OWNER TO dba;
+ALTER TYPE public.superdba_type OWNER TO superdba;
+ALTER TYPE public.superdba_type RENAME TO superdba_type_renamed;
+ALTER TYPE public.superdba_type SET SCHEMA noprivs_schema;
+ALTER TYPE public.superdba_type ADD VALUE 'strange';
+ALTER TYPE public.superdba_type RENAME VALUE 'spin' TO 'twist';
+ALTER TYPE public.superdba_type SET ( ANALYZE = none );
+ALTER TYPE public.superdba_type SET ( SUBSCRIPT = none );
+ALTER TYPE public.superdba_type SET ( STORAGE = plain );
+
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) OWNER TO noprivs;
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) OWNER TO dba;
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) OWNER TO superdba;
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) SET SCHEMA noprivs_schema;
+ALTER PROCEDURE public.superdba_procedure (t superdba_type) RENAME TO superdba_procedure_renamed;
+
+ALTER VIEW public.superdba_view ALTER COLUMN str SET DEFAULT 'otherstr';
+ALTER VIEW public.superdba_view ALTER COLUMN str DROP DEFAULT;
+ALTER VIEW public.superdba_view OWNER TO noprivs;
+ALTER VIEW public.superdba_view OWNER TO dba;
+ALTER VIEW public.superdba_view OWNER TO superdba;
+ALTER VIEW public.superdba_view RENAME COLUMN ary TO ary_renamed;
+ALTER VIEW public.superdba_view RENAME TO superdba_view_renamed;
+ALTER VIEW public.superdba_view SET SCHEMA noprivs_schema;
+ALTER VIEW public.superdba_view SET (check_option = local);
+ALTER VIEW public.superdba_view SET (check_option = cascaded);
+ALTER VIEW public.superdba_view RESET (check_option);
+ALTER VIEW public.superdba_view SET (security_barrier = on);
+ALTER VIEW public.superdba_view SET (security_barrier = off);
+ALTER VIEW public.superdba_view RESET (security_barrier);
+
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) OWNER TO noprivs;
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) OWNER TO dba;
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) OWNER TO superdba;
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) SET SCHEMA noprivs_schema;
+ALTER FUNCTION public.superdba_type_eq (superdba_type, superdba_type) DEPENDS ON EXTENSION plpgsql;
+
+ALTER OPERATOR public.=== (superdba_type, superdba_type) OWNER TO noprivs;
+ALTER OPERATOR public.=== (superdba_type, superdba_type) OWNER TO dba;
+ALTER OPERATOR public.=== (superdba_type, superdba_type) OWNER TO superdba;
+ALTER OPERATOR public.=== (superdba_type, superdba_type) SET SCHEMA noprivs_schema;
+
+-- attempt to alter objects owned by unprivileged user "noprivs"
+ALTER AGGREGATE public.noprivs_aggregate(int4) RENAME TO noprivs_aggregate_renamed;
+ALTER AGGREGATE public.noprivs_aggregate_renamed(int4) RENAME TO noprivs_aggregate;
+ALTER AGGREGATE public.noprivs_aggregate(int4) OWNER TO noprivs;
+ALTER AGGREGATE public.noprivs_aggregate(int4) OWNER TO dba;
+ALTER AGGREGATE public.noprivs_aggregate(int4) OWNER TO superdba;
+ALTER AGGREGATE public.noprivs_aggregate(int4) SET SCHEMA noprivs_schema;
+ALTER AGGREGATE noprivs_schema.noprivs_aggregate(int4) SET SCHEMA public;
+
+ALTER COLLATION public.noprivs_collation RENAME TO noprivs_collation_renamed;
+ALTER COLLATION public.noprivs_collation_renamed RENAME TO noprivs_collation;
+ALTER COLLATION public.noprivs_collation OWNER TO dba;
+ALTER COLLATION public.noprivs_collation OWNER TO superdba;
+ALTER COLLATION public.noprivs_collation OWNER TO noprivs;
+ALTER COLLATION public.noprivs_collation SET SCHEMA noprivs_schema;
+ALTER COLLATION noprivs_schema.noprivs_collation SET SCHEMA public;
+
+ALTER CONVERSION public.noprivs_conversion RENAME TO noprivs_conversion_renamed;
+ALTER CONVERSION public.noprivs_conversion_renamed RENAME TO noprivs_conversion;
+ALTER CONVERSION public.noprivs_conversion OWNER TO dba;
+ALTER CONVERSION public.noprivs_conversion OWNER TO superdba;
+ALTER CONVERSION public.noprivs_conversion OWNER TO noprivs;
+ALTER CONVERSION public.noprivs_conversion SET SCHEMA noprivs_schema;
+ALTER CONVERSION noprivs_schema.noprivs_conversion SET SCHEMA public;
+
+ALTER DOMAIN public.noprivs_domain SET DEFAULT 0;
+ALTER DOMAIN public.noprivs_domain SET NOT NULL;
+ALTER DOMAIN public.noprivs_domain ADD CHECK (VALUE >= 0);
+ALTER DOMAIN public.noprivs_domain RENAME TO noprivs_domain_renamed;
+ALTER DOMAIN public.noprivs_domain_renamed RENAME TO noprivs_domain;
+ALTER DOMAIN public.noprivs_domain OWNER TO dba;
+ALTER DOMAIN public.noprivs_domain OWNER TO superdba;
+ALTER DOMAIN public.noprivs_domain OWNER TO noprivs;
+ALTER DOMAIN public.noprivs_domain SET SCHEMA noprivs_schema;
+ALTER DOMAIN noprivs_schema.noprivs_domain SET SCHEMA public;
+ALTER DOMAIN public.noprivs_domain RENAME CONSTRAINT noprivs_domconstraint TO noprivs_domconstraint_renamed;
+ALTER DOMAIN public.noprivs_domain RENAME CONSTRAINT noprivs_domconstraint_renamed TO noprivs_domconstraint;
+ALTER DOMAIN public.noprivs_domain ADD CONSTRAINT otherconstraint CHECK (VALUE != 5);
+ALTER DOMAIN public.noprivs_domain DROP CONSTRAINT otherconstraint;
+
+ALTER MATERIALIZED VIEW public.noprivs_matview SET SCHEMA noprivs_schema;
+ALTER MATERIALIZED VIEW noprivs_schema.noprivs_matview SET SCHEMA public;
+ALTER MATERIALIZED VIEW public.noprivs_matview RENAME TO noprivs_matview_renamed;
+ALTER MATERIALIZED VIEW public.noprivs_matview_renamed RENAME TO noprivs_matview;
+ALTER MATERIALIZED VIEW public.noprivs_matview RENAME ary TO ary_renamed;
+ALTER MATERIALIZED VIEW public.noprivs_matview RENAME ary_renamed TO ary;
+ALTER MATERIALIZED VIEW public.noprivs_matview ALTER str SET STATISTICS 20;
+ALTER MATERIALIZED VIEW public.noprivs_matview ALTER str SET STORAGE external;
+ALTER MATERIALIZED VIEW public.noprivs_matview ALTER str SET COMPRESSION pglz;
+ALTER MATERIALIZED VIEW public.noprivs_matview SET WITHOUT CLUSTER;
+ALTER MATERIALIZED VIEW public.noprivs_matview OWNER TO dba;
+ALTER MATERIALIZED VIEW public.noprivs_matview OWNER TO superdba;
+ALTER MATERIALIZED VIEW public.noprivs_matview OWNER TO noprivs;
+
+ALTER POLICY noprivs_policy ON noprivs_table RENAME TO noprivs_policy_renamed;
+ALTER POLICY noprivs_policy_renamed ON noprivs_table RENAME TO noprivs_policy;
+
+ALTER RULE noprivs_rule ON public.noprivs_table RENAME TO noprivs_rule_renamed;
+ALTER RULE noprivs_rule_renamed ON public.noprivs_table RENAME TO noprivs_rule;
+
+ALTER SCHEMA noprivs_schema OWNER TO dba;
+ALTER SCHEMA noprivs_schema OWNER TO superdba;
+ALTER SCHEMA noprivs_schema OWNER TO noprivs;
+ALTER SCHEMA noprivs_schema RENAME TO noprivs_schema_renamed;
+ALTER SCHEMA noprivs_schema_renamed RENAME TO noprivs_schema;
+
+ALTER SEQUENCE public.noprivs_sequence RESTART;
+ALTER SEQUENCE public.noprivs_sequence INCREMENT BY 3;
+ALTER SEQUENCE public.noprivs_sequence OWNER TO dba;
+ALTER SEQUENCE public.noprivs_sequence OWNER TO superdba;
+ALTER SEQUENCE public.noprivs_sequence OWNER TO noprivs;
+ALTER SEQUENCE public.noprivs_sequence SET SCHEMA noprivs_schema;
+ALTER SEQUENCE noprivs_schema.noprivs_sequence SET SCHEMA public;;
+ALTER SEQUENCE public.noprivs_sequence RENAME TO noprivs_sequence_renamed;
+ALTER SEQUENCE public.noprivs_sequence_renamed RENAME TO noprivs_sequence;
+
+ALTER STATISTICS public.noprivs_statistics SET STATISTICS 10000;
+ALTER STATISTICS public.noprivs_statistics OWNER TO dba;
+ALTER STATISTICS public.noprivs_statistics OWNER TO superdba;
+ALTER STATISTICS public.noprivs_statistics OWNER TO noprivs;
+ALTER STATISTICS public.noprivs_statistics RENAME TO noprivs_statistics_renamed;
+ALTER STATISTICS public.noprivs_statistics_renamed RENAME TO noprivs_statistics;
+ALTER STATISTICS public.noprivs_statistics SET SCHEMA noprivs_schema;
+ALTER STATISTICS noprivs_schema.noprivs_statistics SET SCHEMA public;
+
+ALTER TABLE public.noprivs_table RENAME COLUMN str TO str_renamed;
+ALTER TABLE public.noprivs_table RENAME COLUMN str_renamed TO str;
+ALTER TABLE public.noprivs_table ADD COLUMN othercolumn TEXT;
+ALTER TABLE public.noprivs_table DROP COLUMN othercolumn;
+ALTER TABLE public.noprivs_table DROP COLUMN adr;
+ALTER TABLE public.noprivs_table ADD COLUMN adr INET;
+ALTER TABLE public.noprivs_table ALTER COLUMN ary SET STATISTICS 200;
+ALTER TABLE public.noprivs_table ALTER COLUMN ary SET COMPRESSION pglz;
+ALTER TABLE public.noprivs_table VALIDATE CONSTRAINT noprivs_constraint;
+ALTER TABLE public.noprivs_table DISABLE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table ENABLE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table FORCE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table NO FORCE ROW LEVEL SECURITY;
+ALTER TABLE public.noprivs_table CLUSTER ON noprivs_index;
+ALTER TABLE public.noprivs_table SET WITHOUT CLUSTER;
+ALTER TABLE public.noprivs_table SET WITHOUT OIDS;
+ALTER TABLE public.noprivs_table RENAME TO noprivs_table_renamed;
+ALTER TABLE public.noprivs_table_renamed RENAME TO noprivs_table;
+ALTER TABLE public.noprivs_table OWNER TO dba;
+ALTER TABLE public.noprivs_table OWNER TO superdba;
+ALTER TABLE public.noprivs_table OWNER TO noprivs;
+ALTER TABLE public.noprivs_table SET SCHEMA noprivs_schema;
+ALTER TABLE noprivs_schema.noprivs_table SET SCHEMA public;
+
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION pg_catalog.pg_class FOR VALUES FROM ('0') TO ('9');
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_table FOR VALUES FROM ('0') TO ('9');
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.noprivs_table;
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.noprivs_partA_M;
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.noprivs_partitioned INHERIT public.noprivs_table;
+ALTER TABLE public.noprivs_partitioned NO INHERIT public.noprivs_table;
+ALTER TABLE public.noprivs_partitioned REPLICA IDENTITY FULL;
+ALTER TABLE public.noprivs_partitioned REPLICA IDENTITY NOTHING;
+ALTER TABLE public.noprivs_partitioned SET SCHEMA noprivs_schema;
+ALTER TABLE noprivs_schema.noprivs_partitioned SET SCHEMA public;
+
+ALTER TABLE public.noprivs_partM_Z ATTACH PARTITION public.noprivs_table FOR VALUES FROM ('0') TO ('9');
+ALTER TABLE public.noprivs_partM_Z DETACH PARTITION public.noprivs_table;
+ALTER TABLE public.noprivs_partM_Z DETACH PARTITION public.noprivs_partA_M;
+ALTER TABLE public.noprivs_partM_Z ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.noprivs_partM_Z INHERIT public.noprivs_table;
+ALTER TABLE public.noprivs_partM_Z NO INHERIT public.noprivs_table;
+ALTER TABLE public.noprivs_partM_Z REPLICA IDENTITY FULL;
+ALTER TABLE public.noprivs_partM_Z REPLICA IDENTITY NOTHING;
+ALTER TABLE public.noprivs_partM_Z SET SCHEMA noprivs_schema;
+ALTER TABLE noprivs_schema.noprivs_partM_Z SET SCHEMA public;
+
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.superdba_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_partA_M FOR VALUES FROM ('A') TO ('M');
+ALTER TABLE public.noprivs_partitioned ATTACH PARTITION public.noprivs_partM_Z FOR VALUES FROM ('M') TO ('Z');
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.superdba_partA_M;
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.superdba_partA_M;
+ALTER TABLE public.noprivs_partitioned DETACH PARTITION public.noprivs_partA_M;
+
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration OWNER TO noprivs;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration OWNER TO dba;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration OWNER TO superdba;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration SET SCHEMA noprivs_schema;
+ALTER TEXT SEARCH CONFIGURATION noprivs_schema.noprivs_tsconfiguration SET SCHEMA public;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration RENAME TO noprivs_tsconfiguration_renamed;
+ALTER TEXT SEARCH CONFIGURATION public.noprivs_tsconfiguration_renamed RENAME TO noprivs_tsconfiguration;
+
+ALTER TRIGGER noprivs_trigger ON public.noprivs_table RENAME TO noprivs_trigger_renamed;
+ALTER TRIGGER noprivs_trigger_renamed ON public.noprivs_table RENAME TO noprivs_trigger;
+ALTER TRIGGER noprivs_trigger ON public.noprivs_table DEPENDS ON EXTENSION plpgsql;
+ALTER TRIGGER noprivs_trigger ON public.noprivs_table NO DEPENDS ON EXTENSION plpgsql;
+
+ALTER TYPE public.noprivs_type OWNER TO dba;
+ALTER TYPE public.noprivs_type OWNER TO superdba;
+ALTER TYPE public.noprivs_type OWNER TO noprivs;
+ALTER TYPE public.noprivs_type RENAME TO noprivs_type_renamed;
+ALTER TYPE public.noprivs_type_renamed RENAME TO noprivs_type;
+ALTER TYPE public.noprivs_type SET SCHEMA noprivs_schema;
+ALTER TYPE noprivs_schema.noprivs_type SET SCHEMA public;
+ALTER TYPE public.noprivs_type ADD VALUE 'strange';
+ALTER TYPE public.noprivs_type RENAME VALUE 'spin' TO 'twist';
+ALTER TYPE public.noprivs_type SET ( ANALYZE = none );
+ALTER TYPE public.noprivs_type SET ( SUBSCRIPT = none );
+ALTER TYPE public.noprivs_type SET ( STORAGE = plain );
+
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) OWNER TO dba;
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) OWNER TO superdba;
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) OWNER TO noprivs;
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) SET SCHEMA noprivs_schema;
+ALTER PROCEDURE noprivs_schema.noprivs_procedure (t noprivs_type) SET SCHEMA public;
+ALTER PROCEDURE public.noprivs_procedure (t noprivs_type) RENAME TO noprivs_procedure_renamed;
+ALTER PROCEDURE public.noprivs_procedure_renamed (t noprivs_type) RENAME TO noprivs_procedure;
+
+ALTER VIEW public.noprivs_view ALTER COLUMN str SET DEFAULT 'otherstr';
+ALTER VIEW public.noprivs_view ALTER COLUMN str DROP DEFAULT;
+ALTER VIEW public.noprivs_view OWNER TO dba;
+ALTER VIEW public.noprivs_view OWNER TO superdba;
+ALTER VIEW public.noprivs_view OWNER TO noprivs;
+ALTER VIEW public.noprivs_view RENAME COLUMN ary TO ary_renamed;
+ALTER VIEW public.noprivs_view RENAME COLUMN ary_renamed TO ary;
+ALTER VIEW public.noprivs_view RENAME TO noprivs_view_renamed;
+ALTER VIEW public.noprivs_view_renamed RENAME TO noprivs_view;
+ALTER VIEW public.noprivs_view SET SCHEMA noprivs_schema;
+ALTER VIEW noprivs_schema.noprivs_view SET SCHEMA public;
+ALTER VIEW public.noprivs_view SET (check_option = local);
+ALTER VIEW public.noprivs_view SET (check_option = cascaded);
+ALTER VIEW public.noprivs_view RESET (check_option);
+ALTER VIEW public.noprivs_view SET (security_barrier = on);
+ALTER VIEW public.noprivs_view SET (security_barrier = off);
+ALTER VIEW public.noprivs_view RESET (security_barrier);
+
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) OWNER TO dba;
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) OWNER TO superdba;
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) OWNER TO noprivs;
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) SET SCHEMA noprivs_schema;
+ALTER FUNCTION noprivs_schema.noprivs_type_eq (noprivs_type, noprivs_type) SET SCHEMA public;
+ALTER FUNCTION public.noprivs_type_eq (noprivs_type, noprivs_type) DEPENDS ON EXTENSION plpgsql;
+
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) OWNER TO dba;
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) OWNER TO superdba;
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) OWNER TO noprivs;
+ALTER OPERATOR public.=== (noprivs_type, noprivs_type) SET SCHEMA noprivs_schema;
+ALTER OPERATOR noprivs_schema.=== (noprivs_type, noprivs_type) SET SCHEMA public;
+
+RESET SESSION AUTHORIZATION;
+-- Check permissions for dba who has pg_manage_database_objects membership
+SET SESSION AUTHORIZATION dba;
+
+-- attempt to comment on system built-in objects
+COMMENT ON ACCESS METHOD spgist IS 'comment on built-in object';
+COMMENT ON AGGREGATE pg_catalog.avg(int8) IS 'comment on built-in object';
+COMMENT ON CAST (int4 AS int8) IS 'comment on built-in object';
+COMMENT ON COLLATION "nl_NL.UTF-8" IS 'comment on built-in object';
+COMMENT ON CONVERSION utf8_to_windows_1251 IS 'comment on built-in object';
+COMMENT ON DATABASE template1 IS 'comment on built-in object';
+COMMENT ON DOMAIN information_schema.cardinal_number IS 'comment on built-in object';
+COMMENT ON LANGUAGE sql IS 'comment on built-in object';
+COMMENT ON TABLE pg_catalog.pg_class IS 'comment on built-in object';
+COMMENT ON EXTENSION plpgsql IS 'comment on built-in object';
+COMMENT ON OPERATOR CLASS float4_ops USING btree IS 'comment on built-in object';
+COMMENT ON OPERATOR FAMILY float_ops USING btree IS 'comment on built-in object';
+COMMENT ON ROLE pg_read_server_files IS 'comment on built-in object';
+COMMENT ON RULE pg_settings_u ON pg_catalog.pg_settings IS 'comment on built-in object';
+COMMENT ON SCHEMA information_schema IS 'comment on built-in object';
+COMMENT ON TABLE information_schema.sql_features IS 'comment on built-in object';
+COMMENT ON TABLESPACE pg_global IS 'comment on built-in object';
+COMMENT ON VIEW information_schema.foreign_table_options IS 'comment on built-in object';
+COMMENT ON FUNCTION information_schema._pg_expandarray(IN anyarray, OUT x anyelement, OUT n int) IS 'comment on built-in object';
+
+-- attempt to comment on objects owned by superdba
+COMMENT ON AGGREGATE public.superdba_aggregate(int4) IS 'comment on superdba object';
+COMMENT ON CAST (numeric AS text) IS 'comment on superdba object';
+COMMENT ON CAST (text AS numeric) IS 'comment on superdba object';
+COMMENT ON COLLATION public.superdba_collation IS 'comment on superdba object';
+COMMENT ON CONSTRAINT superdba_domconstraint ON DOMAIN superdba_domain IS 'comment on superdba object';
+COMMENT ON CONVERSION superdba_conversion IS 'comment on superdba object';
+COMMENT ON DOMAIN superdba_domain IS 'comment on superdba object';
+COMMENT ON EVENT TRIGGER superdba_event_trigger_start IS 'comment on superdba object';
+COMMENT ON EVENT TRIGGER superdba_event_trigger_end IS 'comment on superdba object';
+COMMENT ON EVENT TRIGGER superdba_event_trigger_rewrite IS 'comment on superdba object';
+COMMENT ON EVENT TRIGGER superdba_event_trigger_drop IS 'comment on superdba object';
+COMMENT ON FUNCTION superdba_event_trigger_func() IS 'comment on superdba object';
+COMMENT ON FUNCTION superdba_trigger_func() IS 'comment on superdba object';
+COMMENT ON TABLE public.superdba_table IS 'comment on superdba object';
+COMMENT ON MATERIALIZED VIEW superdba_matview IS 'comment on superdba object';
+COMMENT ON POLICY superdba_policy ON superdba_table IS 'comment on superdba object';
+COMMENT ON PUBLICATION superdba_publication IS 'comment on superdba object';
+COMMENT ON RULE superdba_rule ON superdba_table IS 'comment on superdba object';
+COMMENT ON SCHEMA superdba_schema IS 'comment on superdba object';
+COMMENT ON SEQUENCE superdba_sequence IS 'comment on superdba object';
+COMMENT ON STATISTICS superdba_statistics IS 'comment on superdba object';
+COMMENT ON SUBSCRIPTION superdba_subscription IS 'comment on superdba object';
+COMMENT ON CONSTRAINT superdba_constraint ON superdba_table IS 'comment on superdba object';
+COMMENT ON TEXT SEARCH PARSER superdba_tsparser IS 'comment on superdba object';
+COMMENT ON TEXT SEARCH TEMPLATE superdba_tstemplate IS 'comment on superdba object';
+COMMENT ON TEXT SEARCH CONFIGURATION superdba_tsconfiguration IS 'comment on superdba object';
+COMMENT ON TEXT SEARCH DICTIONARY superdba_tsdictionary IS 'comment on superdba object';
+COMMENT ON TRIGGER superdba_trigger ON superdba_table IS 'comment on superdba object';
+COMMENT ON TYPE superdba_type IS 'comment on superdba object';
+COMMENT ON PROCEDURE superdba_procedure (t superdba_type) IS 'comment on superdba object';
+COMMENT ON VIEW superdba_view IS 'comment on superdba object';
+COMMENT ON FUNCTION superdba_type_eq (superdba_type, superdba_type) IS 'comment on superdba object';
+COMMENT ON OPERATOR === (superdba_type, superdba_type) IS 'comment on superdba object';
+
+-- attempt to comment on objects owned by privileged user "noprivs"
+COMMENT ON AGGREGATE public.noprivs_aggregate(int4) IS 'comment on noprivs object';
+COMMENT ON COLLATION public.noprivs_collation IS 'comment on noprivs object';
+COMMENT ON CONSTRAINT noprivs_domconstraint ON DOMAIN noprivs_domain IS 'comment on noprivs object';
+COMMENT ON CONVERSION noprivs_conversion IS 'comment on noprivs object';
+COMMENT ON DOMAIN noprivs_domain IS 'comment on noprivs object';
+COMMENT ON FUNCTION noprivs_event_trigger_func() IS 'comment on noprivs object';
+COMMENT ON FUNCTION noprivs_trigger_func() IS 'comment on noprivs object';
+COMMENT ON TABLE public.noprivs_table IS 'comment on noprivs object';
+COMMENT ON TEXT SEARCH CONFIGURATION noprivs_tsconfiguration IS 'comment on noprivs object';
+COMMENT ON MATERIALIZED VIEW noprivs_matview IS 'comment on noprivs object';
+COMMENT ON POLICY noprivs_policy ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON RULE noprivs_rule ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON SCHEMA noprivs_schema IS 'comment on noprivs object';
+COMMENT ON SEQUENCE noprivs_sequence IS 'comment on noprivs object';
+COMMENT ON STATISTICS noprivs_statistics IS 'comment on noprivs object';
+COMMENT ON CONSTRAINT noprivs_constraint ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON TRIGGER noprivs_trigger ON noprivs_table IS 'comment on noprivs object';
+COMMENT ON TYPE noprivs_type IS 'comment on noprivs object';
+COMMENT ON PROCEDURE noprivs_procedure (t noprivs_type) IS 'comment on noprivs object';
+COMMENT ON VIEW noprivs_view IS 'comment on noprivs object';
+COMMENT ON FUNCTION noprivs_type_eq (noprivs_type, noprivs_type) IS 'comment on noprivs object';
+COMMENT ON OPERATOR === (noprivs_type, noprivs_type) IS 'comment on noprivs object';
+
+RESET SESSION AUTHORIZATION;
+-- Check permissions for dba who has pg_manage_database_objects membership
+SET SESSION AUTHORIZATION dba;
+
+-- attempt to drop system built-in objects
+DROP ACCESS METHOD spgist;
+DROP AGGREGATE pg_catalog.avg(int8);
+DROP CAST (int4 AS int8);
+DROP COLLATION "nl_NL.UTF-8";
+DROP CONVERSION utf8_to_windows_1251;
+DROP DATABASE template1;
+DROP DOMAIN information_schema.cardinal_number;
+DROP EXTENSION plpgsql;
+DROP LANGUAGE sql;
+DROP OPERATOR CLASS float4_ops USING btree;
+DROP OPERATOR FAMILY float_ops USING btree;
+DROP ROLE pg_read_server_files;
+DROP RULE pg_settings_u ON pg_catalog.pg_settings;
+DROP TABLE pg_catalog.pg_class;
+DROP SCHEMA information_schema;
+DROP TABLE information_schema.sql_features;
+DROP TABLESPACE pg_global;
+DROP VIEW information_schema.foreign_table_options;
+DROP FUNCTION information_schema._pg_expandarray(IN anyarray, OUT x anyelement, OUT n int);
+
+-- attempt to drop objects owned by superdba
+DROP AGGREGATE public.superdba_aggregate(int4);
+DROP CAST (numeric AS text);
+DROP CAST (text AS numeric);
+DROP TABLE superdba_partA_M;
+DROP TABLE superdba_partM_Z;
+DROP TABLE superdba_partitioned;
+DROP CONVERSION superdba_conversion;
+DROP DOMAIN superdba_domain;
+DROP EVENT TRIGGER superdba_event_trigger_start;
+DROP EVENT TRIGGER superdba_event_trigger_end;
+DROP EVENT TRIGGER superdba_event_trigger_rewrite;
+DROP EVENT TRIGGER superdba_event_trigger_drop;
+DROP FUNCTION superdba_event_trigger_func();
+DROP INDEX superdba_index;
+DROP MATERIALIZED VIEW superdba_matview;
+DROP POLICY superdba_policy ON superdba_table;
+DROP PUBLICATION superdba_publication;
+DROP RULE superdba_rule ON superdba_table;
+DROP SCHEMA superdba_schema;
+DROP STATISTICS superdba_statistics;
+DROP SUBSCRIPTION superdba_subscription;
+DROP VIEW superdba_view;
+ALTER TABLE superdba_table DROP CONSTRAINT superdba_constraint;
+DROP TABLE public.superdba_table;
+DROP COLLATION public.superdba_collation;
+DROP SEQUENCE superdba_sequence;
+DROP TRIGGER superdba_trigger ON superdba_table;
+DROP FUNCTION superdba_trigger_func();
+DROP TEXT SEARCH CONFIGURATION superdba_tsconfiguration;
+DROP TEXT SEARCH DICTIONARY superdba_tsdictionary;
+DROP TEXT SEARCH PARSER superdba_tsparser;
+DROP TEXT SEARCH TEMPLATE superdba_tstemplate;
+DROP TRANSFORM FOR bigint LANGUAGE SQL;
+DROP OPERATOR === (superdba_type, superdba_type);
+DROP FUNCTION superdba_type_eq (superdba_type, superdba_type);
+DROP PROCEDURE superdba_procedure (t superdba_type);
+DROP TYPE superdba_type;
+
+-- attempt to drop objects owned by unprivileged user "noprivs"
+DROP AGGREGATE public.noprivs_aggregate(int4);
+DROP TABLE noprivs_partA_M;
+DROP TABLE noprivs_partM_Z;
+DROP TABLE noprivs_partitioned;
+DROP CONVERSION noprivs_conversion;
+DROP DOMAIN noprivs_domain;
+DROP FUNCTION noprivs_event_trigger_func();
+DROP INDEX noprivs_index;
+DROP MATERIALIZED VIEW noprivs_matview;
+DROP POLICY noprivs_policy ON noprivs_table;
+DROP RULE noprivs_rule ON noprivs_table;
+DROP SCHEMA noprivs_schema;
+DROP STATISTICS noprivs_statistics;
+DROP VIEW noprivs_view;
+ALTER TABLE noprivs_table DROP CONSTRAINT noprivs_constraint;
+DROP TEXT SEARCH CONFIGURATION noprivs_tsconfiguration;
+DROP TEXT SEARCH DICTIONARY noprivs_tsdictionary;
+DROP TRIGGER noprivs_trigger ON noprivs_table;
+DROP TABLE public.noprivs_table;
+DROP COLLATION public.noprivs_collation;
+DROP SEQUENCE noprivs_sequence;
+DROP FUNCTION noprivs_trigger_func();
+DROP OPERATOR === (noprivs_type, noprivs_type);
+DROP FUNCTION noprivs_type_eq (noprivs_type, noprivs_type);
+DROP PROCEDURE noprivs_procedure (t noprivs_type);
+DROP TYPE noprivs_type;
+
+-- attempt to drop users
+DROP USER noprivs;
+DROP USER superdba;
+
+RESET SESSION AUTHORIZATION;
+-- drop remaining objects owned by superdba
+DROP AGGREGATE public.superdba_aggregate(int4);
+DROP CAST (numeric AS text);
+DROP CAST (text AS numeric);
+DROP TABLE superdba_partA_M;
+DROP TABLE superdba_partM_Z;
+DROP TABLE superdba_partitioned;
+DROP CONVERSION superdba_conversion;
+DROP DOMAIN superdba_domain;
+DROP EVENT TRIGGER superdba_event_trigger_start;
+DROP EVENT TRIGGER superdba_event_trigger_end;
+DROP EVENT TRIGGER superdba_event_trigger_rewrite;
+DROP EVENT TRIGGER superdba_event_trigger_drop;
+DROP FUNCTION superdba_event_trigger_func();
+DROP INDEX superdba_index;
+DROP MATERIALIZED VIEW superdba_matview;
+DROP POLICY superdba_policy ON superdba_table;
+DROP PUBLICATION superdba_publication;
+DROP RULE superdba_rule ON superdba_table;
+DROP SCHEMA superdba_schema;
+DROP STATISTICS superdba_statistics;
+DROP SUBSCRIPTION superdba_subscription;
+DROP TRIGGER superdba_trigger ON superdba_table;
+DROP FUNCTION superdba_trigger_func();
+DROP VIEW superdba_view;
+ALTER TABLE superdba_table DROP CONSTRAINT superdba_constraint;
+DROP TABLE public.superdba_table;
+DROP COLLATION public.superdba_collation;
+DROP SEQUENCE superdba_sequence;
+DROP TEXT SEARCH CONFIGURATION superdba_tsconfiguration;
+DROP TEXT SEARCH DICTIONARY superdba_tsdictionary;
+DROP TEXT SEARCH PARSER superdba_tsparser;
+DROP TEXT SEARCH TEMPLATE superdba_tstemplate;
+DROP TRANSFORM FOR bigint LANGUAGE SQL;
+DROP OPERATOR === (superdba_type, superdba_type);
+DROP FUNCTION superdba_type_eq (superdba_type, superdba_type);
+DROP PROCEDURE superdba_procedure (t superdba_type);
+DROP TYPE superdba_type;
+
+-- finished tests relying on these users
+DROP USER dba;
+DROP USER noprivs;
+DROP USER superdba;
-- 
2.21.1 (Apple Git-122.3)

#76Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#75)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Jul 22, 2021, at 1:01 PM, Robert Haas <robertmhaas@gmail.com> wrote:
It's awkward. I think that we can't afford to create a separate
predefined role for every single thing that someone could
theoretically want to sever, because then we'll have a zillion of them
and it will be unmaintainable. So the idea was to try to break up
everything someone might want to do either via DDL or by setting GUCs
into one of three categories: internal to the database
(pg_database_security), facing outward toward the network
(pg_network_security), and facing inward toward the host
(pg_host_security). If we didn't have any predefined security-related
roles already, this would still have complications, but as things
stand it has more, because as you point out, pg_read_server_files
overlaps with pg_host_security. But what do we do about that?

I gave up on the idea of splitting all superuser functions into three roles.

I can't say that I blame you for that. :) For my 2c, at least, the ones
proposed never really felt like they were very directly tied to specific
capabilities, which I think was one of the issues with that approach.

Patch v5-0001 refactors the guc code to allow non-superuser roles to be associated with guc variables. Any such role can then set the variable, including via "alter system set". The patch stops short of creating any new roles or assigning any roles to any guc variable.

Haven't looked at the patch yet but this does generally seem like an
interesting approach.

Patches v5-0002 through v5-0005 create four new roles for managing host resource settings, vacuum settings, autovacuum settings, and logging settings. That last one excludes "where to log" settings, because we don't want the role to be able to write to arbitrary locations on the server. Remaining guc variables not in these four categories continue to belong to the superuser.

We do have a role today who is allowed to write to arbitrary locations
on the server, so I wonder if for those log settings we'd include a
requirement for the user to have both of those roles instead..?

Patches v5-0006 and v5-0007 allow non-superusers to own event triggers, and limit the event triggers to only running for events triggered by roles that the event trigger owner belongs to. This is backward compatible, because event triggers have historically belonged only to superusers, and superusers have implicit membership in all groups.

While I generally agree that this doesn't end up opening up security
issues, it's going to certainly be a change in how event triggers work
as they'll no longer *always* fire, and that seems quite at odds with
how triggers are generally thought of. So much so that I worry about
mis-use due to this. Then again, if we're going to go down this route
at all, I can't think of any particular way to avoid the security issues
of running the trigger for everyone when it's owned by a non-superuser.

Patches v5-0008 through v5-0010 allow non-superusers to own subscriptions while restricting the tablesync and apply workers to only work on tables that the subscription owner has permissions on. This is almost backward compatible, because subscriptions have historically belonged only to superusers, as above, except for unlikely scenarios where superusers have given ownership to non-superusers. In those cases, the new code will refuse to apply in situations where the old code would blindly apply changes. Does anybody see a problem with this?

This doesn't particularly bother me, at least.

Patch v5-0011 is a bug fix posted elsewhere that hasn't been committed yet but which must be committed in preparation for v5-0012.

No idea what it is as I hadn't looked yet, but if it's a bug fix then
shouldn't it be separated and back-patched..?

Patch v5-0012 creates a new role, pg_manage_database_objects, which can do anything with an object that the owner could do with it, as long as the owner is not a superuser. This role is intended as a "tenant" role, and is in some sense a less powerful replacement for the pg_database_security role previously proposed.

This I have to object to pretty strongly- we have got to get away from
the idea that just because X isn't a superuser or isn't owned by a
superuser that it's fine to allow some non-superuser to mess with it.
In particlar, just because a role isn't explicitly marked as a superuser
doesn't mean that the role can't *become* a superuser, or that it hasn't
got privileged access to the system in other ways, such as by being a
member of other predefined roles that perhaps the role who is a member
of pg_manage_database_objects doesn't have. Such a check against
modifying of "superuser owned" objects implies that it's providing some
kind of protection against the role being able to become a superuser
when it doesn't actually provide that protection in any kind of reliable
fashion and instead ends up fooling the user.

This is the issue with CREATEROLE and we definitely shouldn't be
doubling-down on that mistake, and also brings up the point that I, at
least, had certainly hoped that part of this effort would include a way
for roles to be created by a user with an appropriate predefined role,
and w/o CREATEROLE (which would then be deprecated or, ideally, just
outright removed). I get that this doesn't have to be in the first
patch or even patch set going down this road but the lack of discussion
or of any coordination between this effort and the other one that is
trying to address the CREATEROLE issue seems likely to land us in a bad
place with two distinct approaches being used.

I doubt that I will create any replacement for the pg_host_security role previously proposed, as I think that role is just synonymous with "superuser", so it serves no purpose.

I am uncertain about creating a role similar to the pg_network_security role previously proposed, as the changes to how publications and subscriptions work in patches v5-0008 through v5-0010 may be enough. In any event, I'd like feedback on those patches before designing one or more additional roles for this.

"Able to create network connections" sure seems like a useful
capabilitiy to be able to delegate and which would cover postgres_fdw
and dblink use-cases also.

Thanks,

Stephen

#77Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#76)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Aug 23, 2021 at 2:13 PM Stephen Frost <sfrost@snowman.net>
wrote:> This I have to object to pretty strongly- we have got to get
away from

the idea that just because X isn't a superuser or isn't owned by a
superuser that it's fine to allow some non-superuser to mess with it.
In particlar, just because a role isn't explicitly marked as a superuser
doesn't mean that the role can't *become* a superuser, or that it hasn't
got privileged access to the system in other ways, such as by being a
member of other predefined roles that perhaps the role who is a member
of pg_manage_database_objects doesn't have. Such a check against
modifying of "superuser owned" objects implies that it's providing some
kind of protection against the role being able to become a superuser
when it doesn't actually provide that protection in any kind of reliable
fashion and instead ends up fooling the user.

I think you make a good point here, but it seems to me that we need
*something*. We need a way to create a "lead tenant" role that can
create other tenant roles and then, err, boss them around. Not only
drop the roles again, but also drop or alter or change the owner of
their objects, or really bypass any security those roles would like to
assert as against the lead tenant. If we can't see a way to create
some sort of role of that sort, then I don't think we can really say
we've solved anything much.

This is the issue with CREATEROLE and we definitely shouldn't be
doubling-down on that mistake, and also brings up the point that I, at
least, had certainly hoped that part of this effort would include a way
for roles to be created by a user with an appropriate predefined role,
and w/o CREATEROLE (which would then be deprecated or, ideally, just
outright removed). I get that this doesn't have to be in the first
patch or even patch set going down this road but the lack of discussion
or of any coordination between this effort and the other one that is
trying to address the CREATEROLE issue seems likely to land us in a bad
place with two distinct approaches being used.

Is there an active effort to do something about CREATEROLE? Do you
have a link to the thread? I feel like this is one of those things
that has occasioned discussion over the years but I am not aware of an
active project or a specific proposal to do something about this.

Maybe this can be solved from the other end? Like, as opposed to
working by exception and saying, "well, everything but superusers,"
maybe we need to explicitly declare who is included. Like, perhaps we
could somehow represent the fact that role A has super-powers with
respect to roles B, C, D, and any future roles that A may create, but
not other roles that exist on the system, or something of that sort?

--
Robert Haas
EDB: http://www.enterprisedb.com

#78Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#77)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Robert Haas (robertmhaas@gmail.com) wrote:

On Mon, Aug 23, 2021 at 2:13 PM Stephen Frost <sfrost@snowman.net>
wrote:> This I have to object to pretty strongly- we have got to get
away from

the idea that just because X isn't a superuser or isn't owned by a
superuser that it's fine to allow some non-superuser to mess with it.
In particlar, just because a role isn't explicitly marked as a superuser
doesn't mean that the role can't *become* a superuser, or that it hasn't
got privileged access to the system in other ways, such as by being a
member of other predefined roles that perhaps the role who is a member
of pg_manage_database_objects doesn't have. Such a check against
modifying of "superuser owned" objects implies that it's providing some
kind of protection against the role being able to become a superuser
when it doesn't actually provide that protection in any kind of reliable
fashion and instead ends up fooling the user.

I think you make a good point here, but it seems to me that we need
*something*. We need a way to create a "lead tenant" role that can
create other tenant roles and then, err, boss them around. Not only
drop the roles again, but also drop or alter or change the owner of
their objects, or really bypass any security those roles would like to
assert as against the lead tenant. If we can't see a way to create
some sort of role of that sort, then I don't think we can really say
we've solved anything much.

Sure, but we can't just use the "superuser" flag for that, we need
something better. The "better" in my mind here would be akin to what
we're thinking about doing for event triggers, but for roles which
actually already have a distinction between becoming a role vs. being
able to GRANT that role to another role, and that's the 'admin' option.

In other words, the user we imagine being GRANT'd this hypothetical
pg_manage_database_objects role wouldn't actually need that role to
explicitly give them access to be able to modify the objects of other
roles- it would be able to do that by virtue of just being a member of
those roles. The roles who are allowed to modify existing role
membership should have the 'admin' right on those roles, and what we
just need is a new predefined role that's basically "allow roles to be
created or dropped" but where the only roles which can be GRANT'd by a
user with that ability are the ones that they have admin rights on, and
the only roles that they're allowed to drop they also have to have admin
rights on.

This is the issue with CREATEROLE and we definitely shouldn't be
doubling-down on that mistake, and also brings up the point that I, at
least, had certainly hoped that part of this effort would include a way
for roles to be created by a user with an appropriate predefined role,
and w/o CREATEROLE (which would then be deprecated or, ideally, just
outright removed). I get that this doesn't have to be in the first
patch or even patch set going down this road but the lack of discussion
or of any coordination between this effort and the other one that is
trying to address the CREATEROLE issue seems likely to land us in a bad
place with two distinct approaches being used.

Is there an active effort to do something about CREATEROLE? Do you
have a link to the thread? I feel like this is one of those things
that has occasioned discussion over the years but I am not aware of an
active project or a specific proposal to do something about this.

Hrmpf, I had been thinking of this:

/messages/by-id/c2ee39152957af339ae6f3e851aef09930dd2faf.camel@credativ.de

registered in the CF here: https://commitfest.postgresql.org/34/2918/

though I see now that it isn't trying to explicitly deal with the
CREATEROLE bit (which I had understood from some other discussion was a
topic of interest to the author), but is definitely caught up in the
discussion about who is allowed to set what GUCs, and therefore still
seems rather related to me.

Maybe this can be solved from the other end? Like, as opposed to
working by exception and saying, "well, everything but superusers,"
maybe we need to explicitly declare who is included. Like, perhaps we
could somehow represent the fact that role A has super-powers with
respect to roles B, C, D, and any future roles that A may create, but
not other roles that exist on the system, or something of that sort?

Isn't this exactly what having the 'admin' option on a role is? You're
GRANT'd that role and further are allowed to then GRANT that role to
other roles. Being a member of that role means you're considered to
have 'ownership' level rights for all the objects that that role owns
too.

Maybe also need to have some condition around "you can only set
attributes on roles which you already have", or maybe we need to invent
'admin' options for each of the role attributes if we think it needs to
be more granular. The only other thing I can think of is that we should
also contemplate what to do with things like CONNECTION LIMIT, VALID
UNTIL, perhaps others. Those aren't currently allowed to be modified by
a role who has 'admin' rights on another role and so maybe we make those
require the new 'pg_manage_roles' predefined role and the 'admin' option
on a given role to be set.

I'm not against the idea of inventing something new here too... but the
'admin' option sure looks like what we're talking about here.

Thanks,

Stephen

#79Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#76)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Aug 23, 2021, at 11:13 AM, Stephen Frost <sfrost@snowman.net> wrote:

This I have to object to pretty strongly- we have got to get away from
the idea that just because X isn't a superuser or isn't owned by a
superuser that it's fine to allow some non-superuser to mess with it.

I thought we were trying to create a set of roles which could cumulatively do everything *inside the sandbox* that superuser can do, but which cannot escape the sandbox. I would think this pg_manage_database_objects role would be reasonable in the context of that effort.

In particlar, just because a role isn't explicitly marked as a superuser
doesn't mean that the role can't *become* a superuser, or that it hasn't
got privileged access to the system in other ways, such as by being a
member of other predefined roles that perhaps the role who is a member
of pg_manage_database_objects doesn't have.

The implementation does not allow pg_manage_database_objects to mess with objects that are owned by a role which satisfies superuser_arg(). If you are renting out a database to a tenant and change the ownership of stuff to a non-superuser, then you get what you get. But why would you do that?

Such a check against
modifying of "superuser owned" objects implies that it's providing some
kind of protection against the role being able to become a superuser
when it doesn't actually provide that protection in any kind of reliable
fashion and instead ends up fooling the user.

Please provide steps to reproduce this issue. Assume that a database is initialized and that everything is owned by the system. A "tenant" role is created and granted pg_manage_database_objects, and other non-superuser roles are created. Now, what exactly can "tenant" do that you find objectionable?

This is the issue with CREATEROLE and we definitely shouldn't be
doubling-down on that mistake, and also brings up the point that I, at
least, had certainly hoped that part of this effort would include a way
for roles to be created by a user with an appropriate predefined role,
and w/o CREATEROLE (which would then be deprecated or, ideally, just
outright removed).

Well, pg_manage_database_objects has no special ability to create or drop roles. I thought separating those powers made more sense than grouping them together. We can have a new role for doing what you say, but that seems redundant with CREATEROLE. I didn't want this patch set to be bogged down waiting for a consensus on how to change the CREATEROLE privilege.

I get that this doesn't have to be in the first
patch or even patch set going down this road but the lack of discussion
or of any coordination between this effort and the other one that is
trying to address the CREATEROLE issue seems likely to land us in a bad
place with two distinct approaches being used.

I'm confused. This patch set doesn't come within a country mile of CREATEROLE. Why should this patch set have to coordinate with that one? I'm not arguing with you -- merely asking what I'm misunderstanding?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#80Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#79)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Aug 23, 2021, at 11:13 AM, Stephen Frost <sfrost@snowman.net> wrote:
This I have to object to pretty strongly- we have got to get away from
the idea that just because X isn't a superuser or isn't owned by a
superuser that it's fine to allow some non-superuser to mess with it.

I thought we were trying to create a set of roles which could cumulatively do everything *inside the sandbox* that superuser can do, but which cannot escape the sandbox. I would think this pg_manage_database_objects role would be reasonable in the context of that effort.

I wasn't objecting to the general concept of trying to have a role that
can do lots of things inside the sandbox but aren't allowed to escape
it. I was specifically objecting to the idea that just checking if an
object is directly owned by a superuser is not sufficient to prevent a
role from being able to escape the sandbox.

In particlar, just because a role isn't explicitly marked as a superuser
doesn't mean that the role can't *become* a superuser, or that it hasn't
got privileged access to the system in other ways, such as by being a
member of other predefined roles that perhaps the role who is a member
of pg_manage_database_objects doesn't have.

The implementation does not allow pg_manage_database_objects to mess with objects that are owned by a role which satisfies superuser_arg(). If you are renting out a database to a tenant and change the ownership of stuff to a non-superuser, then you get what you get. But why would you do that?

Simply using superuser_arg() isn't sufficient is exactly the point that
I'm trying to make. As a 'landlord', I might very well want to have
some kind of 'landlord' role that isn't directly a superuser but which
could *become* a superuser by having been GRANT'd a superuser role- but
I certainly don't want that role's objects to be able to be messed with
by the tenant.

Such a check against
modifying of "superuser owned" objects implies that it's providing some
kind of protection against the role being able to become a superuser
when it doesn't actually provide that protection in any kind of reliable
fashion and instead ends up fooling the user.

Please provide steps to reproduce this issue. Assume that a database is initialized and that everything is owned by the system. A "tenant" role is created and granted pg_manage_database_objects, and other non-superuser roles are created. Now, what exactly can "tenant" do that you find objectionable?

If one of those other non-superuser roles is, itself, a role that can
become a superuser and it decides to create some functions for its own
purposes, then the tenant role would be able to modify those functions,
allowing the tenant to gain access to the non-superuser role, and from
there being able to gain access to superuser.

Something along these lines, basically:

CREATE USER tenant;
GRANT pg_manage_database_objects TO tenant;
CREATE USER landlord;
GRANT postgres TO landlord;
SET ROLE landlord;
CREATE FUNCTION do_stuff();
put call to do_stuff() into a cronjob
SET ROLE tenant;
CREATE OR REPLACE do_stuff(); -- with code to take over landlord

poof- tenant has ability to be landlord and then further to become
postgres.

All of the above applies beyond just superuser too- consider a
non-superuser role which has been grant'd pg_execute_server_program.
That won't trip up superuser_arg() but it sure would allow a role to
break out of the sandbox.

This is the issue with CREATEROLE and we definitely shouldn't be
doubling-down on that mistake, and also brings up the point that I, at
least, had certainly hoped that part of this effort would include a way
for roles to be created by a user with an appropriate predefined role,
and w/o CREATEROLE (which would then be deprecated or, ideally, just
outright removed).

Well, pg_manage_database_objects has no special ability to create or drop roles. I thought separating those powers made more sense than grouping them together. We can have a new role for doing what you say, but that seems redundant with CREATEROLE. I didn't want this patch set to be bogged down waiting for a consensus on how to change the CREATEROLE privilege.

CREATEROLE doesn't work to give to folks generally because of the issues
above- its check is, similarly, too simple and always has been. This
isn't news either, it's been discussed in various places from time to
time and is part of why people who run cloud providers end up either not
giving out that role attribute and providing another way, or they hack
up the PG core code to handle the way that attribute works differently.

I get that this doesn't have to be in the first
patch or even patch set going down this road but the lack of discussion
or of any coordination between this effort and the other one that is
trying to address the CREATEROLE issue seems likely to land us in a bad
place with two distinct approaches being used.

I'm confused. This patch set doesn't come within a country mile of CREATEROLE. Why should this patch set have to coordinate with that one? I'm not arguing with you -- merely asking what I'm misunderstanding?

Perhaps it's just because I'm looking at the exact same issues cropping
up here that do with the CREATEROLE situation and I'd really like to
find a solution that gets us away from putting out a half-solution that
won't actually be directly usable by the folks who care about making
sure people don't break out of the sandbox because of the issues
outlined above.

Thanks,

Stephen

#81Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#80)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Aug 23, 2021, at 12:51 PM, Stephen Frost <sfrost@snowman.net> wrote:

Simply using superuser_arg() isn't sufficient is exactly the point that
I'm trying to make. As a 'landlord', I might very well want to have
some kind of 'landlord' role that isn't directly a superuser but which
could *become* a superuser by having been GRANT'd a superuser role- but
I certainly don't want that role's objects to be able to be messed with
by the tenant.

If one of those other non-superuser roles is, itself, a role that can
become a superuser

If you have a sandbox-superuser who can do anything within the sandbox but nothing outside the sandbox, then you need a pretty good wall at the periphery of the sandbox. Breaking sandbox-superuser-ishness into multiple distinct privileges rather than one monolithic privilege doesn't change the need for a good wall at the periphery. The pg_manage_database_objects role doesn't encompass all sandbox-superuser privileges, but it is on that side of the wall.

We could agree to move the wall a little, and say that non-superuser roles who have the ability to become superusers are on the other side of the wall. That's fine. I'd have to rework the patch a bit, but conceptually that seems doable. We could also say that non-superusers who are members of privileged roles (pg_execute_server_programs, pg_signal_backend, etc) are likewise on the other side of that wall.

Does that work?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#82Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#81)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Aug 23, 2021, at 12:51 PM, Stephen Frost <sfrost@snowman.net> wrote:
Simply using superuser_arg() isn't sufficient is exactly the point that
I'm trying to make. As a 'landlord', I might very well want to have
some kind of 'landlord' role that isn't directly a superuser but which
could *become* a superuser by having been GRANT'd a superuser role- but
I certainly don't want that role's objects to be able to be messed with
by the tenant.

If one of those other non-superuser roles is, itself, a role that can
become a superuser

If you have a sandbox-superuser who can do anything within the sandbox but nothing outside the sandbox, then you need a pretty good wall at the periphery of the sandbox. Breaking sandbox-superuser-ishness into multiple distinct privileges rather than one monolithic privilege doesn't change the need for a good wall at the periphery. The pg_manage_database_objects role doesn't encompass all sandbox-superuser privileges, but it is on that side of the wall.

We could agree to move the wall a little, and say that non-superuser roles who have the ability to become superusers are on the other side of the wall. That's fine. I'd have to rework the patch a bit, but conceptually that seems doable. We could also say that non-superusers who are members of privileged roles (pg_execute_server_programs, pg_signal_backend, etc) are likewise on the other side of that wall.

Does that work?

I'd much rather we go down the path that Robert had suggested where we
find a way to make a connection between the tenant role and everything
that they create, and leave everything that is outside of that box on
the other side of the 'wall'. There's also the risk that the landlord
creates a role one day but then GRANT's superuser rights to that role on
another day, that happened to be after the tenant managed to gain
control of that role. That kind of thing is something we should work
hard to make difficult to happen- the landlord should have to explicitly
give the tenant control over something that the landlord creates, it
shouldn't happen automagically.

Having hard-coded lists of which predefined roles are 'ok' and which
aren't sounds generally bad and I don't think we'd actually want to
include all predefined roles in that list either (even if it'd be fine
today, which I don't think it is given things like pg_monitor and
pg_signal_backend, though perhaps there could be some debate over
those...).

Thanks,

Stephen

#83Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#76)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Aug 23, 2021, at 11:13 AM, Stephen Frost <sfrost@snowman.net> wrote:

Patch v5-0011 is a bug fix posted elsewhere that hasn't been committed yet but which must be committed in preparation for v5-0012.

No idea what it is as I hadn't looked yet, but if it's a bug fix then
shouldn't it be separated and back-patched..?

It is already a patch waiting for commit.

Discussion: /messages/by-id/1F238937-7CC2-4703-A1B1-6DC225B8978A@enterprisedb.com


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#84Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#82)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Aug 23, 2021, at 1:46 PM, Stephen Frost <sfrost@snowman.net> wrote:

I'd much rather we go down the path that Robert had suggested where we
find a way to make a connection between the tenant role and everything
that they create, and leave everything that is outside of that box on
the other side of the 'wall'.

I am coming around to this way of thinking. The main difficulty here stems (as you know) from how CREATEROLE was implemented. You and Tom had conversations about that back in 2005 [1]/messages/by-id/17554.1120258001@sss.pgh.pa.us — Mark Dilger EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company, and Tom even suggested perhaps roles have owners:

* Tom Lane (tgl(at)sss(dot)pgh(dot)pa(dot)us) wrote:

Possibly for 8.2 we could invent a notion of roles having owners.
Offhand I don't see any harm in letting non-CREATEROLE users create
non-login roles, and manipulate the membership of roles they have
created (or that have been assigned to them by a superuser). On the
other hand, it could be that the WITH ADMIN OPTION feature is already
sufficient for this. This really needs some thought ...

Making roles owners of roles they create, and giving them the power to manipulate objects which belong to roles they own (recursively), seems to solve most of our problems we have been discussing. The remaining problem is that roles without createrole or superuser cannot create other roles. We don't want tenants to need either of those things, at least not as they are currently defined. We could either modify the createrole privilege to be far less powerful, or create a new privilege.

If role owners can alter and drop roles they own (and ones those roles own, etc.) then we could redefine CREATEROLE to really just mean the ability to create new roles. The ability to alter or drop roles would not stem from having CREATEROLE, but rather from owning the role. For setups where one admin role has CREATEROLE and creates all other roles (except the superuser which created the admin) nothing changes. In setups with multiple admins, where none own the others, each admin would have its own fiefdom, managing everything downstream from itself, but having no special privilege over the other fiefdoms. I think that setup wasn't implemented for 8.1 more for lack of time than because it was unwanted.

Alternately, we could just create a new privilege parallel to CREATEROLE, but that seems confusing more than helpful.

Thoughts?

[1]: /messages/by-id/17554.1120258001@sss.pgh.pa.us — Mark Dilger EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company

Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#85Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Mark Dilger (#84)
19 attachment(s)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Aug 27, 2021, at 3:47 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

Making roles owners of roles they create, and giving them the power to manipulate objects which belong to roles they own (recursively), seems to solve most of our problems we have been discussing.

Not hearing any responses, this part is implemented in v6-0018 and v6-0019.

The remaining problem is that roles without createrole or superuser cannot create other roles. We don't want tenants to need either of those things, at least not as they are currently defined. We could either modify the createrole privilege to be far less powerful, or create a new privilege.

If role owners can alter and drop roles they own (and ones those roles own, etc.) then we could redefine CREATEROLE to really just mean the ability to create new roles. The ability to alter or drop roles would not stem from having CREATEROLE, but rather from owning the role. For setups where one admin role has CREATEROLE and creates all other roles (except the superuser which created the admin) nothing changes. In setups with multiple admins, where none own the others, each admin would have its own fiefdom, managing everything downstream from itself, but having no special privilege over the other fiefdoms. I think that setup wasn't implemented for 8.1 more for lack of time than because it was unwanted.

This really deserves more thought from the list. CREATEROLE's behavior is unchanged in this patch set.

On Aug 23, 2021, at 11:13 AM, Stephen Frost <sfrost@snowman.net> wrote:

Patches v5-0002 through v5-0005 create four new roles for managing host resource settings, vacuum settings, autovacuum settings, and logging settings. That last one excludes "where to log" settings, because we don't want the role to be able to write to arbitrary locations on the server. Remaining guc variables not in these four categories continue to belong to the superuser.

We do have a role today who is allowed to write to arbitrary locations
on the server, so I wonder if for those log settings we'd include a
requirement for the user to have both of those roles instead..?

Following your advice, pg_manage_logging_settings + pg_write_server_files is made sufficient to set "where to log" settings in v6-0005.

Patches v6-0002 through v6-0005 add roles intended to allow tenants to set values for a limited number of appropriate guc variables. That seems fine for the purpose of facilitating postgres-as-a-service.

There is another reason to have roles with the power to SET or ALTER SYSTEM SET guc variables, though. For large deployments of postgres databases in the cloud, being able to log in as a non-superuser role in order to configure the database means having one fewer reasons to need to allow superuser connections to the server. That's valuable for its own sake.

Patches v6-0006 through v6-0012 add yet more roles with authority to set additional guc variables. They don't go quite so far as including all gucs, but the majority of gucs are covered, and we can add additional groupings if anybody has suggestions.

Attachments:

v6-0001-Allow-SET-and-ALTER-SYSTEM-SET-per-role.patchapplication/octet-stream; name=v6-0001-Allow-SET-and-ALTER-SYSTEM-SET-per-role.patch; x-unix-mode=0644Download
From 0b178aab4f9cfbb8b7d75ebe335ba00fea074a73 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 3 Aug 2021 09:34:19 -0700
Subject: [PATCH v6 01/19] Allow SET and ALTER SYSTEM SET per role.

Lay the groundwork for delegating to built-in roles the privilege to
perform SET and ALTER SYSTEM SET on GUC variables which otherwise
can only be changed by superuser.  Do not delegate any variables
here.  We anticipate follow-on patches to reduce the number of
operations which require superuser by creating built-in roles with
privilege to manage portions of the set of all GUC variables.
---
 contrib/auth_delay/auth_delay.c               |    1 +
 contrib/auto_explain/auto_explain.c           |   12 +
 contrib/pg_prewarm/autoprewarm.c              |    2 +
 .../pg_stat_statements/pg_stat_statements.c   |    5 +
 contrib/pg_trgm/trgm_op.c                     |    3 +
 contrib/sepgsql/hooks.c                       |    2 +
 src/backend/utils/misc/guc.c                  |  717 +++++--
 src/include/utils/guc.h                       |    9 +
 src/include/utils/guc_tables.h                |    1 +
 src/pl/plperl/plperl.c                        |    8 +-
 src/pl/plpgsql/src/pl_handler.c               |   10 +-
 src/pl/tcl/pltcl.c                            |    4 +-
 .../modules/delay_execution/delay_execution.c |    1 +
 .../ssl_passphrase_func.c                     |    1 +
 src/test/modules/worker_spi/worker_spi.c      |    3 +
 src/test/regress/expected/guc_priv_admin.out  | 1794 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/guc_priv_admin.sql       | 1422 +++++++++++++
 18 files changed, 3815 insertions(+), 182 deletions(-)
 create mode 100644 src/test/regress/expected/guc_priv_admin.out
 create mode 100644 src/test/regress/sql/guc_priv_admin.sql

diff --git a/contrib/auth_delay/auth_delay.c b/contrib/auth_delay/auth_delay.c
index 5820ac328d..4b151a10ba 100644
--- a/contrib/auth_delay/auth_delay.c
+++ b/contrib/auth_delay/auth_delay.c
@@ -63,6 +63,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_SUPERUSER_ONLY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index e9092ba359..e349066375 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -100,6 +100,7 @@ _PG_init(void)
 							-1,
 							-1, INT_MAX,
 							PGC_SUSET,
+							GUC_SUPERUSER_ONLY,
 							GUC_UNIT_MS,
 							NULL,
 							NULL,
@@ -111,6 +112,7 @@ _PG_init(void)
 							 &auto_explain_log_analyze,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -122,6 +124,7 @@ _PG_init(void)
 							 &auto_explain_log_settings,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -133,6 +136,7 @@ _PG_init(void)
 							 &auto_explain_log_verbose,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -144,6 +148,7 @@ _PG_init(void)
 							 &auto_explain_log_buffers,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -155,6 +160,7 @@ _PG_init(void)
 							 &auto_explain_log_wal,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -166,6 +172,7 @@ _PG_init(void)
 							 &auto_explain_log_triggers,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -178,6 +185,7 @@ _PG_init(void)
 							 EXPLAIN_FORMAT_TEXT,
 							 format_options,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -190,6 +198,7 @@ _PG_init(void)
 							 LOG,
 							 loglevel_options,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -201,6 +210,7 @@ _PG_init(void)
 							 &auto_explain_log_nested_statements,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -212,6 +222,7 @@ _PG_init(void)
 							 &auto_explain_log_timing,
 							 true,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -225,6 +236,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c
index 0289ea657c..b00fcfe7f6 100644
--- a/contrib/pg_prewarm/autoprewarm.c
+++ b/contrib/pg_prewarm/autoprewarm.c
@@ -116,6 +116,7 @@ _PG_init(void)
 							300,
 							0, INT_MAX / 1000,
 							PGC_SIGHUP,
+							GUC_SUPERUSER_ONLY,
 							GUC_UNIT_S,
 							NULL,
 							NULL,
@@ -131,6 +132,7 @@ _PG_init(void)
 							 &autoprewarm,
 							 true,
 							 PGC_POSTMASTER,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c
index 07fe0e7cda..be32e8613b 100644
--- a/contrib/pg_stat_statements/pg_stat_statements.c
+++ b/contrib/pg_stat_statements/pg_stat_statements.c
@@ -387,6 +387,7 @@ _PG_init(void)
 							100,
 							INT_MAX,
 							PGC_POSTMASTER,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
@@ -399,6 +400,7 @@ _PG_init(void)
 							 PGSS_TRACK_TOP,
 							 track_options,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -410,6 +412,7 @@ _PG_init(void)
 							 &pgss_track_utility,
 							 true,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -421,6 +424,7 @@ _PG_init(void)
 							 &pgss_track_planning,
 							 false,
 							 PGC_SUSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -432,6 +436,7 @@ _PG_init(void)
 							 &pgss_save,
 							 true,
 							 PGC_SIGHUP,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/pg_trgm/trgm_op.c b/contrib/pg_trgm/trgm_op.c
index fb38135f7a..c24d8243c1 100644
--- a/contrib/pg_trgm/trgm_op.c
+++ b/contrib/pg_trgm/trgm_op.c
@@ -72,6 +72,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -84,6 +85,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
@@ -96,6 +98,7 @@ _PG_init(void)
 							 0.0,
 							 1.0,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 0,
 							 NULL,
 							 NULL,
diff --git a/contrib/sepgsql/hooks.c b/contrib/sepgsql/hooks.c
index 19a3ffb7ff..df7984de9c 100644
--- a/contrib/sepgsql/hooks.c
+++ b/contrib/sepgsql/hooks.c
@@ -432,6 +432,7 @@ _PG_init(void)
 							 &sepgsql_permissive,
 							 false,
 							 PGC_SIGHUP,
+							 GUC_SUPERUSER_ONLY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
@@ -450,6 +451,7 @@ _PG_init(void)
 							 &sepgsql_debug_audit,
 							 false,
 							 PGC_USERSET,
+							 GUC_SUPERUSER_ONLY,
 							 GUC_NOT_IN_SAMPLE,
 							 NULL,
 							 NULL,
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 467b0fd6fe..1fe414304b 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -972,6 +972,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of sequential-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_seqscan,
@@ -982,6 +983,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_indexscan,
@@ -992,6 +994,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-only-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_indexonlyscan,
@@ -1002,6 +1005,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of bitmap-scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_bitmapscan,
@@ -1012,6 +1016,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of TID scan plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_tidscan,
@@ -1022,6 +1027,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of explicit sort steps."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_sort,
@@ -1031,7 +1037,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of incremental sort steps."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&enable_incremental_sort,
 		true,
@@ -1041,6 +1048,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hashed aggregation plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_hashagg,
@@ -1051,6 +1059,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of materialization."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_material,
@@ -1061,6 +1070,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_memoize", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of memoization."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_memoize,
@@ -1071,6 +1081,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of nested-loop join plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_nestloop,
@@ -1081,6 +1092,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of merge join plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_mergejoin,
@@ -1091,6 +1103,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hash join plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_hashjoin,
@@ -1101,6 +1114,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of gather merge plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_gathermerge,
@@ -1111,6 +1125,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise join."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_join,
@@ -1121,6 +1136,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise aggregation and grouping."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_aggregate,
@@ -1131,6 +1147,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel append plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_append,
@@ -1141,6 +1158,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel hash plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_hash,
@@ -1153,6 +1171,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Allows the query planner and executor to compare partition "
 						 "bounds to conditions in the query to determine which "
 						 "partitions must be scanned."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_partition_pruning,
@@ -1163,6 +1182,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of async append plans."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_async_append,
@@ -1174,6 +1194,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables genetic query optimization."),
 			gettext_noop("This algorithm attempts to do planning without "
 						 "exhaustive searching."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&enable_geqo,
@@ -1185,6 +1206,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"is_superuser", PGC_INTERNAL, UNGROUPED,
 			gettext_noop("Shows whether the current user is a superuser."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&session_auth_is_superuser,
@@ -1194,7 +1216,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Enables advertising the server via Bonjour."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&enable_bonjour,
 		false,
@@ -1203,7 +1226,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Collects transaction commit time."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&track_commit_timestamp,
 		false,
@@ -1212,7 +1236,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Enables SSL connections."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&EnableSSL,
 		false,
@@ -1221,7 +1246,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Also use ssl_passphrase_command during server reload."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_passphrase_command_supports_reload,
 		false,
@@ -1230,7 +1256,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Give priority to server ciphersuite order."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&SSLPreferServerCiphers,
 		true,
@@ -1242,7 +1269,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("The server will use the fsync() system call in several places to make "
 						 "sure that updates are physically written to disk. This insures "
 						 "that a database cluster will recover to a consistent state after "
-						 "an operating system or hardware crash.")
+						 "an operating system or hardware crash."),
+			GUC_SUPERUSER_ONLY
 		},
 		&enableFsync,
 		true,
@@ -1257,6 +1285,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(but still report a warning), and continue processing. This "
 						 "behavior could cause crashes or other serious problems. Only "
 						 "has an effect if checksums are enabled."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_checksum_failure,
@@ -1271,6 +1300,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "zero_damaged_pages to true causes the system to instead report a "
 						 "warning, zero out the damaged page, and continue processing. This "
 						 "behavior will destroy data, namely all the rows on the damaged page."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&zero_damaged_pages,
@@ -1290,6 +1320,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "crashes, data loss, propagate or hide corruption, "
 						 "or other serious problems. Only has an effect "
 						 "during recovery or in standby mode."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_invalid_pages,
@@ -1303,7 +1334,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "only partially written to disk.  During recovery, the row changes "
 						 "stored in WAL are not enough to recover.  This option writes "
 						 "pages when first modified after a checkpoint to WAL so full recovery "
-						 "is possible.")
+						 "is possible."),
+			GUC_SUPERUSER_ONLY
 		},
 		&fullPageWrites,
 		true,
@@ -1313,7 +1345,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_log_hints,
 		false,
@@ -1323,7 +1356,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Writes zeroes to new WAL files before first use."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_init_zero,
 		true,
@@ -1333,7 +1367,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_recycle", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Recycles WAL files by renaming them."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_recycle,
 		true,
@@ -1343,7 +1378,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs each checkpoint."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_checkpoints,
 		false,
@@ -1352,7 +1388,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs each successful connection."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_connections,
 		false,
@@ -1361,7 +1398,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs end of a session, including duration."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_disconnections,
 		false,
@@ -1370,7 +1408,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs each replication command."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_replication_commands,
 		false,
@@ -1380,6 +1419,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_assertions", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether the running server has assertion checks enabled."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&assert_enabled,
@@ -1394,7 +1434,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Terminate session on any error."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ExitOnAnyError,
 		false,
@@ -1403,7 +1444,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Reinitialize server after backend crash."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&restart_after_crash,
 		true,
@@ -1413,6 +1455,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"remove_temp_files_after_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Remove temporary files after backend crash."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&remove_temp_files_after_crash,
@@ -1423,7 +1466,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_duration", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs the duration of each completed SQL statement."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_duration,
 		false,
@@ -1432,7 +1476,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's parse tree."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_print_parse,
 		false,
@@ -1441,7 +1486,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's rewritten parse tree."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_print_rewritten,
 		false,
@@ -1450,7 +1496,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's execution plan."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_print_plan,
 		false,
@@ -1459,7 +1506,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Indents parse and plan tree displays."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Debug_pretty_print,
 		true,
@@ -1468,7 +1516,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_parser_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes parser performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_parser_stats,
 		false,
@@ -1477,7 +1526,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_planner_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes planner performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_planner_stats,
 		false,
@@ -1486,7 +1536,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_executor_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes executor performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_executor_stats,
 		false,
@@ -1495,7 +1546,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_statement_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes cumulative performance statistics to the server log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_statement_stats,
 		false,
@@ -1506,6 +1558,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_btree_build_stats", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Logs system resource usage statistics (memory and CPU) on various B-tree operations."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&log_btree_build_stats,
@@ -1519,7 +1572,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Collects information about executing commands."),
 			gettext_noop("Enables the collection of information on the currently "
 						 "executing command of each session, along with "
-						 "the time at which that command began execution.")
+						 "the time at which that command began execution."),
+			GUC_SUPERUSER_ONLY
 		},
 		&pgstat_track_activities,
 		true,
@@ -1528,7 +1582,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_counts", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects statistics on database activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&pgstat_track_counts,
 		true,
@@ -1537,7 +1592,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for database I/O activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&track_io_timing,
 		false,
@@ -1546,7 +1602,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"track_wal_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for WAL I/O activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&track_wal_io_timing,
 		false,
@@ -1556,7 +1613,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"update_process_title", PGC_SUSET, PROCESS_TITLE,
 			gettext_noop("Updates the process title to show the active SQL command."),
-			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server.")
+			gettext_noop("Enables updating of the process title every time a new SQL command is received by the server."),
+			GUC_SUPERUSER_ONLY
 		},
 		&update_process_title,
 #ifdef WIN32
@@ -1570,7 +1628,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"autovacuum", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Starts the autovacuum subprocess."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_start_daemon,
 		true,
@@ -1581,6 +1640,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_notify,
@@ -1593,6 +1653,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lock usage."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_locks,
@@ -1603,6 +1664,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about user lock usage."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_userlocks,
@@ -1613,6 +1675,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lightweight lock usage."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lwlocks,
@@ -1623,6 +1686,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_deadlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Dumps information about all current locks when a deadlock timeout occurs."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Debug_deadlocks,
@@ -1634,7 +1698,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs long lock waits."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_lock_waits,
 		false,
@@ -1643,7 +1708,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs standby recovery conflict waits."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_recovery_conflict_waits,
 		false,
@@ -1655,7 +1721,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("By default, connection logs only show the IP address "
 						 "of the connecting host. If you want them to show the host name you "
 						 "can turn this on, but depending on your host name resolution "
-						 "setup it might impose a non-negligible performance penalty.")
+						 "setup it might impose a non-negligible performance penalty."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_hostname,
 		false,
@@ -1668,7 +1735,8 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(or NULL = expr) are treated as expr IS NULL, that is, they "
 						 "return true if expr evaluates to the null value, and false "
 						 "otherwise. The correct behavior of expr = NULL is to always "
-						 "return null (unknown).")
+						 "return null (unknown)."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Transform_null_equals,
 		false,
@@ -1677,7 +1745,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"db_user_namespace", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Enables per-database user names."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Db_user_namespace,
 		false,
@@ -1687,6 +1756,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default read-only status of new transactions."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&DefaultXactReadOnly,
@@ -1697,6 +1767,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_read_only", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's read-only status."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactReadOnly,
@@ -1706,7 +1777,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"default_transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default deferrable status of new transactions."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&DefaultXactDeferrable,
 		false,
@@ -1716,6 +1788,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"transaction_deferrable", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactDeferrable,
@@ -1725,7 +1798,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"row_security", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Enable row security."),
-			gettext_noop("When enabled, row security will be applied to all users.")
+			gettext_noop("When enabled, row security will be applied to all users."),
+			GUC_SUPERUSER_ONLY
 		},
 		&row_security,
 		true,
@@ -1734,7 +1808,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&check_function_bodies,
 		true,
@@ -1745,7 +1820,8 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enable input of NULL elements in arrays."),
 			gettext_noop("When turned on, unquoted NULL in an array input "
 						 "value means a null value; "
-						 "otherwise it is taken literally.")
+						 "otherwise it is taken literally."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Array_nulls,
 		true,
@@ -1761,6 +1837,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"default_with_oids", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("WITH OIDS is no longer supported; this can only be false."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
 		},
 		&default_with_oids,
@@ -1770,7 +1847,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Logging_collector,
 		false,
@@ -1779,7 +1857,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Truncate existing log files of same name during log rotation."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_truncate_on_rotation,
 		false,
@@ -1791,6 +1870,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit information about resource usage in sorting."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_sort,
@@ -1805,6 +1885,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generate debugging output for synchronized scanning."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_syncscan,
@@ -1820,6 +1901,7 @@ static struct config_bool ConfigureNamesBool[] =
 			"optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enable bounded sorting using heap sort."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&optimize_bounded_sort,
@@ -1833,6 +1915,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit WAL-related debugging output."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&XLOG_DEBUG,
@@ -1845,6 +1928,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"integer_datetimes", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether datetimes are integer based."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&integer_datetimes,
@@ -1855,7 +1939,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&pg_krb_caseins_users,
 		false,
@@ -1865,7 +1950,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Warn about backslash escapes in ordinary string literals."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&escape_string_warning,
 		true,
@@ -1876,6 +1962,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"standard_conforming_strings", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Causes '...' strings to treat backslashes literally."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&standard_conforming_strings,
@@ -1886,7 +1973,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"synchronize_seqscans", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enable synchronized sequential scans."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&synchronize_seqscans,
 		true,
@@ -1896,7 +1984,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets whether to include or exclude transaction with recovery target."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryTargetInclusive,
 		true,
@@ -1906,7 +1995,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
 			gettext_noop("Allows connections and queries during recovery."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&EnableHotStandby,
 		true,
@@ -1916,7 +2006,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&hot_standby_feedback,
 		false,
@@ -1927,6 +2018,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"in_hot_standby", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether hot standby is currently active."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&in_hot_standby,
@@ -1938,6 +2030,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allows modifications of the structure of system tables."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&allowSystemTableMods,
@@ -1950,6 +2043,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Disables reading from system indexes."),
 			gettext_noop("It does not prevent updating the indexes, so it is safe "
 						 "to use.  The worst consequence is slowness."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&IgnoreSystemIndexes,
@@ -1961,7 +2055,8 @@ static struct config_bool ConfigureNamesBool[] =
 		{"lo_compat_privileges", PGC_SUSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Enables backward compatibility mode for privilege checks on large objects."),
 			gettext_noop("Skips privilege checks when reading or modifying large objects, "
-						 "for compatibility with PostgreSQL releases prior to 9.0.")
+						 "for compatibility with PostgreSQL releases prior to 9.0."),
+			GUC_SUPERUSER_ONLY
 		},
 		&lo_compat_privileges,
 		false,
@@ -1972,6 +2067,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"quote_all_identifiers", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("When generating SQL fragments, quote all identifiers."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 		},
 		&quote_all_identifiers,
 		false,
@@ -1982,6 +2078,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"data_checksums", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows whether data checksums are turned on for this cluster."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_checksums,
@@ -1992,7 +2089,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_sequence_numbers,
 		true,
@@ -2002,7 +2100,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_split_messages,
 		true,
@@ -2013,6 +2112,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"parallel_leader_participation", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Controls whether Gather and Gather Merge also run subplans."),
 			gettext_noop("Should gather nodes also run subplans or just gather tuples?"),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&parallel_leader_participation,
@@ -2024,6 +2124,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Allow JIT compilation."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_enabled,
@@ -2035,6 +2136,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_debugging_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with debugger."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_debugging_support,
@@ -2052,6 +2154,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_dump_bitcode", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Write out LLVM bitcode to facilitate JIT debugging."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_dump_bitcode,
@@ -2063,6 +2166,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_expressions", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of expressions."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_expressions,
@@ -2074,6 +2178,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_profiling_support", PGC_SU_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Register JIT-compiled functions with perf profiler."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_profiling_support,
@@ -2091,6 +2196,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit_tuple_deforming", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allow JIT compilation of tuple deforming."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&jit_tuple_deforming,
@@ -2101,6 +2207,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Whether to continue running after a failure to sync data files."),
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&data_sync_retry,
 		false,
@@ -2110,6 +2218,8 @@ static struct config_bool ConfigureNamesBool[] =
 	{
 		{"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_receiver_create_temp_slot,
 		false,
@@ -2130,6 +2240,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Forces a switch to the next WAL file if a "
 						 "new file has not been started within N seconds."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&XLogArchiveTimeout,
@@ -2140,6 +2251,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"post_auth_delay", PGC_BACKEND, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup after authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PostAuthDelay,
@@ -2150,7 +2262,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"default_statistics_target", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Sets the default statistics target."),
 			gettext_noop("This applies to table columns that have not had a "
-						 "column-specific target set via ALTER TABLE SET STATISTICS.")
+						 "column-specific target set via ALTER TABLE SET STATISTICS."),
+			GUC_SUPERUSER_ONLY
 		},
 		&default_statistics_target,
 		100, 1, 10000,
@@ -2163,6 +2276,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will merge subqueries into upper "
 						 "queries if the resulting FROM list would have no more than "
 						 "this many items."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&from_collapse_limit,
@@ -2176,6 +2290,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will flatten explicit JOIN "
 						 "constructs into lists of FROM items whenever a "
 						 "list of no more than this many items would result."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&join_collapse_limit,
@@ -2186,6 +2301,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&geqo_threshold,
@@ -2196,6 +2312,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_effort,
@@ -2206,6 +2323,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of individuals in the population."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_pool_size,
@@ -2216,6 +2334,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of iterations of the algorithm."),
 			gettext_noop("Zero selects a suitable default value."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_generations,
@@ -2228,6 +2347,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"deadlock_timeout", PGC_SUSET, LOCK_MANAGEMENT,
 			gettext_noop("Sets the time to wait on a lock before checking for deadlock."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&DeadlockTimeout,
@@ -2239,6 +2359,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&max_standby_archive_delay,
@@ -2250,6 +2371,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&max_standby_streaming_delay,
@@ -2261,6 +2383,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the minimum delay for applying changes during recovery."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&recovery_min_apply_delay,
@@ -2272,6 +2395,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&wal_receiver_status_interval,
@@ -2283,6 +2407,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum wait time to receive data from the sending server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&wal_receiver_timeout,
@@ -2293,7 +2418,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the maximum number of concurrent connections."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&MaxConnections,
 		100, 1, MAX_BACKENDS,
@@ -2304,7 +2430,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the number of connection slots reserved for superusers."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ReservedBackends,
 		3, 0, MAX_BACKENDS,
@@ -2315,6 +2442,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Amount of dynamic shared memory reserved at startup."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&min_dynamic_shared_memory,
@@ -2330,6 +2458,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the number of shared memory buffers used by the server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&NBuffers,
@@ -2341,6 +2470,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_buffers", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of temporary buffers used by each session."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN
 		},
 		&num_temp_buffers,
@@ -2351,7 +2481,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"port", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the TCP port the server listens on."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&PostPortNumber,
 		DEF_PGPORT, 1, 65535,
@@ -2366,7 +2497,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_permissions,
 		0777, 0000, 0777,
@@ -2380,7 +2512,8 @@ static struct config_int ConfigureNamesInt[] =
 						 "to be a numeric mode specification in the form "
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
-						 "start with a 0 (zero).)")
+						 "start with a 0 (zero).)"),
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_file_mode,
 		0600, 0000, 0777,
@@ -2395,6 +2528,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "in the form accepted by the chmod and umask system "
 						 "calls. (To use the customary octal format the number "
 						 "must start with a 0 (zero).)"),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&data_directory_mode,
@@ -2408,6 +2542,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This much memory can be used by each internal "
 						 "sort operation and hash table before switching to "
 						 "temporary disk files."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB | GUC_EXPLAIN
 		},
 		&work_mem,
@@ -2419,6 +2554,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used for maintenance operations."),
 			gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
@@ -2431,6 +2567,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum memory to be used for logical decoding."),
 			gettext_noop("This much memory can be used by each internal "
 						 "reorder buffer before spilling to disk."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&logical_decoding_work_mem,
@@ -2447,6 +2584,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum stack depth, in kilobytes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&max_stack_depth,
@@ -2458,6 +2596,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
 			gettext_noop("Limits the total size of all temporary files used by each process."),
 			gettext_noop("-1 means no limit."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&temp_file_limit,
@@ -2468,7 +2607,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostPageHit,
 		1, 0, 10000,
@@ -2478,7 +2618,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostPageMiss,
 		2, 0, 10000,
@@ -2488,7 +2629,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostPageDirty,
 		20, 0, 10000,
@@ -2498,7 +2640,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost amount available before napping."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&VacuumCostLimit,
 		200, 1, 10000,
@@ -2508,7 +2651,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_cost_limit,
 		-1, -1, 10000,
@@ -2518,7 +2662,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
 			gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_files_per_process,
 		1000, 64, INT_MAX,
@@ -2531,7 +2676,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_prepared_xacts,
 		0, 0, MAX_BACKENDS,
@@ -2543,6 +2689,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the minimum OID of tables for tracking locks."),
 			gettext_noop("Is used to avoid output on system tables."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_oidmin,
@@ -2553,6 +2700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_table,
@@ -2565,6 +2713,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"statement_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any statement."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&StatementTimeout,
@@ -2576,6 +2725,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"lock_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed duration of any wait for a lock."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&LockTimeout,
@@ -2587,6 +2737,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_in_transaction_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&IdleInTransactionSessionTimeout,
@@ -2598,6 +2749,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"idle_session_timeout", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum allowed idle time between queries, when not in a transaction."),
 			gettext_noop("A value of 0 turns off the timeout."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&IdleSessionTimeout,
@@ -2608,7 +2760,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a table row."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_freeze_min_age,
 		50000000, 0, 1000000000,
@@ -2618,7 +2771,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2628,7 +2782,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_multixact_freeze_min_age,
 		5000000, 0, 1000000000,
@@ -2638,7 +2793,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_multixact_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2648,7 +2804,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_defer_cleanup_age", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_defer_cleanup_age,
 		0, 0, 1000000,			/* see ComputeXidHorizons */
@@ -2657,7 +2814,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2666,7 +2824,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&vacuum_multixact_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2681,7 +2840,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of locks per transaction."),
 			gettext_noop("The shared lock table is sized on the assumption that "
 						 "at most max_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2693,7 +2853,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of predicate locks per transaction."),
 			gettext_noop("The shared predicate lock table is sized on the assumption that "
 						 "at most max_pred_locks_per_transaction * max_connections distinct "
-						 "objects will need to be locked at any one time.")
+						 "objects will need to be locked at any one time."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_predicate_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2704,7 +2865,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_relation", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
 			gettext_noop("If more than this total of pages and tuples in the same relation are locked "
-						 "by a connection, those locks are replaced by a relation-level lock.")
+						 "by a connection, those locks are replaced by a relation-level lock."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_predicate_locks_per_relation,
 		-2, INT_MIN, INT_MAX,
@@ -2715,7 +2877,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_pred_locks_per_page", PGC_SIGHUP, LOCK_MANAGEMENT,
 			gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
 			gettext_noop("If more than this number of tuples on the same page are locked "
-						 "by a connection, those locks are replaced by a page-level lock.")
+						 "by a connection, those locks are replaced by a page-level lock."),
+			GUC_SUPERUSER_ONLY
 		},
 		&max_predicate_locks_per_page,
 		2, 0, INT_MAX,
@@ -2726,6 +2889,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the maximum allowed time to complete client authentication."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&AuthenticationTimeout,
@@ -2738,6 +2902,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"pre_auth_delay", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Waits N seconds on connection startup before authentication."),
 			gettext_noop("This allows attaching a debugger to the process."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_UNIT_S
 		},
 		&PreAuthDelay,
@@ -2749,6 +2914,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
 			gettext_noop("Sets the size of WAL files held for standby servers."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&wal_keep_size_mb,
@@ -2760,6 +2926,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the minimum size to shrink the WAL to."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&min_wal_size_mb,
@@ -2772,6 +2939,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the WAL size that triggers a checkpoint."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&max_wal_size_mb,
@@ -2784,6 +2952,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&CheckPointTimeout,
@@ -2798,6 +2967,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Write a message to the server log if checkpoints "
 						 "caused by the filling of checkpoint segment files happens more "
 						 "frequently than this number of seconds. Zero turns off the warning."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&CheckPointWarning,
@@ -2809,6 +2979,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&checkpoint_flush_after,
@@ -2820,6 +2991,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_XBLOCKS
 		},
 		&XLOGbuffers,
@@ -2831,6 +3003,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Time between WAL flushes performed in the WAL writer."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&WalWriterDelay,
@@ -2842,6 +3015,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_XBLOCKS
 		},
 		&WalWriterFlushAfter,
@@ -2853,6 +3027,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&wal_skip_threshold,
@@ -2863,7 +3038,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_wal_senders,
 		10, 0, MAX_BACKENDS,
@@ -2874,7 +3050,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_wal_senders */
 		{"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_replication_slots,
 		10, 0, MAX_BACKENDS /* XXX? */ ,
@@ -2887,6 +3064,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Replication slots will be marked as failed, and segments released "
 						 "for deletion or recycling, if this much space is occupied by WAL "
 						 "on disk."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MB
 		},
 		&max_slot_wal_keep_size_mb,
@@ -2898,6 +3076,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum time to wait for WAL replication."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&wal_sender_timeout,
@@ -2909,7 +3088,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_delay", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Sets the delay in microseconds between transaction commit and "
 						 "flushing WAL to disk."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 			/* we have no microseconds designation, so can't supply units here */
 		},
 		&CommitDelay,
@@ -2921,7 +3101,8 @@ static struct config_int ConfigureNamesInt[] =
 		{"commit_siblings", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the minimum concurrent open transactions before performing "
 						 "commit_delay."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&CommitSiblings,
 		5, 0, 1000,
@@ -2934,7 +3115,8 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This affects real, double precision, and geometric data types. "
 						 "A zero or negative parameter value is added to the standard "
 						 "number of digits (FLT_DIG or DBL_DIG as appropriate). "
-						 "Any value greater than zero selects precise output mode.")
+						 "Any value greater than zero selects precise output mode."),
+			GUC_SUPERUSER_ONLY
 		},
 		&extra_float_digits,
 		1, -15, 3,
@@ -2947,6 +3129,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "a sample of statements will be logged."
 						 " Sampling is determined by log_statement_sample_rate."),
 			gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_sample,
@@ -2959,6 +3142,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "all statements will be logged."),
 			gettext_noop("Zero prints all queries. -1 turns this feature off."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_statement,
@@ -2971,6 +3155,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "autovacuum actions will be logged."),
 			gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&Log_autovacuum_min_duration,
@@ -2982,6 +3167,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("When logging statements, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length,
@@ -2993,6 +3179,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("When reporting an error, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length_on_error,
@@ -3004,6 +3191,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer sleep time between rounds."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&BgWriterDelay,
@@ -3014,7 +3202,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Background writer maximum number of LRU pages to flush per round."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bgwriter_lru_maxpages,
 		100, 0, INT_MAX / 2,	/* Same upper limit as shared_buffers */
@@ -3025,6 +3214,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"bgwriter_flush_after", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&bgwriter_flush_after,
@@ -3038,6 +3228,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&effective_io_concurrency,
@@ -3056,6 +3247,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("A variant of effective_io_concurrency that is used for maintenance work."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&maintenance_io_concurrency,
@@ -3072,6 +3264,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS
 		},
 		&backend_flush_after,
@@ -3085,6 +3278,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Maximum number of concurrent worker processes."),
 			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_worker_processes,
 		8, 0, MAX_BACKENDS,
@@ -3097,6 +3291,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of logical replication worker processes."),
 			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_logical_replication_workers,
 		4, 0, MAX_BACKENDS,
@@ -3109,6 +3304,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of table synchronization workers per subscription."),
 			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_sync_workers_per_subscription,
 		2, 0, MAX_BACKENDS,
@@ -3119,6 +3315,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N minutes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MIN
 		},
 		&Log_RotationAge,
@@ -3130,6 +3327,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N kilobytes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&Log_RotationSize,
@@ -3141,6 +3339,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_function_args", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of function arguments."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_function_args,
@@ -3152,6 +3351,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_index_keys", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum number of index keys."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_index_keys,
@@ -3163,6 +3363,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_identifier_length", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the maximum identifier length."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&max_identifier_length,
@@ -3174,6 +3375,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of a disk block."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&block_size,
@@ -3185,6 +3387,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the number of pages per disk file."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&segment_size,
@@ -3196,6 +3399,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the block size in the write ahead log."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_block_size,
@@ -3208,6 +3412,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the time to wait before retrying to retrieve WAL "
 						 "after a failed attempt."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&wal_retrieve_retry_interval,
@@ -3219,6 +3424,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the size of write ahead log segments."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&wal_segment_size,
@@ -3232,6 +3438,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Time to sleep between autovacuum runs."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&autovacuum_naptime,
@@ -3241,7 +3448,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_thresh,
 		50, 0, INT_MAX,
@@ -3250,7 +3458,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_ins_thresh,
 		1000, -1, INT_MAX,
@@ -3259,7 +3468,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_anl_thresh,
 		50, 0, INT_MAX,
@@ -3269,7 +3479,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_freeze_max_age,
 
@@ -3284,7 +3495,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see multixact.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
 		{"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_multixact_freeze_max_age,
 		400000000, 10000, 2000000000,
@@ -3294,7 +3506,8 @@ static struct config_int ConfigureNamesInt[] =
 		/* see max_connections */
 		{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_max_workers,
 		3, 1, MAX_BACKENDS,
@@ -3304,7 +3517,8 @@ static struct config_int ConfigureNamesInt[] =
 	{
 		{"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&max_parallel_maintenance_workers,
 		2, 0, 1024,
@@ -3315,6 +3529,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per executor node."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers_per_gather,
@@ -3326,6 +3541,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers,
@@ -3337,6 +3553,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&autovacuum_work_mem,
@@ -3348,6 +3565,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"old_snapshot_threshold", PGC_POSTMASTER, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Time before a snapshot is too old to read pages changed after the snapshot was taken."),
 			gettext_noop("A value of -1 disables this feature."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MIN
 		},
 		&old_snapshot_threshold,
@@ -3359,6 +3577,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between issuing TCP keepalives."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_idle,
@@ -3370,6 +3589,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between TCP keepalive retransmits."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_interval,
@@ -3381,6 +3601,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"ssl_renegotiation_limit", PGC_USERSET, CONN_AUTH_SSL,
 			gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE,
 		},
 		&ssl_renegotiation_limit,
@@ -3394,6 +3615,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This controls the number of consecutive keepalive retransmits that can be "
 						 "lost before a connection is considered dead. A value of 0 uses the "
 						 "system default."),
+			GUC_SUPERUSER_ONLY
 		},
 		&tcp_keepalives_count,
 		0, 0, INT_MAX,
@@ -3404,6 +3626,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_fuzzy_search_limit", PGC_USERSET, CLIENT_CONN_OTHER,
 			gettext_noop("Sets the maximum allowed result for exact search by GIN."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			0
 		},
 		&GinFuzzySearchLimit,
@@ -3416,6 +3639,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the planner's assumption about the total size of the data caches."),
 			gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
 						 "This is measured in disk pages, which are normally 8 kB each."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&effective_cache_size,
@@ -3427,6 +3651,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of table data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_table_scan_size,
@@ -3438,6 +3663,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of index data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_index_scan_size,
@@ -3450,6 +3676,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version as an integer."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_num,
@@ -3461,6 +3688,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_temp_files", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
 			gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&log_temp_files,
@@ -3472,6 +3700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"track_activity_query_size", PGC_POSTMASTER, STATS_COLLECTOR,
 			gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_BYTE
 		},
 		&pgstat_track_activity_query_size,
@@ -3483,6 +3712,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"gin_pending_list_limit", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the maximum size of the pending list for GIN index."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&gin_pending_list_limit,
@@ -3494,6 +3724,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_user_timeout", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("TCP user timeout."),
 			gettext_noop("A value of 0 uses the system default."),
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&tcp_user_timeout,
@@ -3505,6 +3736,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("The size of huge page that should be requested."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_KB
 		},
 		&huge_page_size,
@@ -3516,6 +3748,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"debug_discard_caches", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Aggressively flush system caches for debugging purposes."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE
 		},
 		&debug_discard_caches,
@@ -3539,6 +3772,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"client_connection_check_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the time interval between checks for disconnection while running queries."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&client_connection_check_interval,
@@ -3560,6 +3794,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "sequentially fetched disk page."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&seq_page_cost,
@@ -3571,6 +3806,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "nonsequentially fetched disk page."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&random_page_cost,
@@ -3582,6 +3818,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each tuple (row)."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cpu_tuple_cost,
@@ -3593,6 +3830,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each index entry during an index scan."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cpu_index_tuple_cost,
@@ -3604,6 +3842,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each operator or function call."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cpu_operator_cost,
@@ -3615,6 +3854,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "passing each tuple (row) from worker to leader backend."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&parallel_tuple_cost,
@@ -3626,6 +3866,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "starting up worker processes for parallel query."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&parallel_setup_cost,
@@ -3637,6 +3878,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT compilation if query is more expensive."),
 			gettext_noop("-1 disables JIT compilation."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_above_cost,
@@ -3648,6 +3890,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
 			gettext_noop("-1 disables optimization."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_optimize_above_cost,
@@ -3659,6 +3902,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT inlining if query is more expensive."),
 			gettext_noop("-1 disables inlining."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&jit_inline_above_cost,
@@ -3671,6 +3915,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the fraction of "
 						 "a cursor's rows that will be retrieved."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&cursor_tuple_fraction,
@@ -3682,6 +3927,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: selective pressure within the population."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_selection_bias,
@@ -3693,6 +3939,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: seed for random path selection."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&Geqo_seed,
@@ -3704,6 +3951,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Multiple of work_mem to use for hash tables."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&hash_mem_multiplier,
@@ -3714,7 +3962,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
 			gettext_noop("Multiple of the average buffer usage to free per round."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bgwriter_lru_multiplier,
 		2.0, 0.0, 10.0,
@@ -3725,6 +3974,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"seed", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the seed for random-number generation."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&phony_random_seed,
@@ -3736,6 +3986,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost delay in milliseconds."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&VacuumCostDelay,
@@ -3747,6 +3998,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_UNIT_MS
 		},
 		&autovacuum_vac_cost_delay,
@@ -3757,7 +4009,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_scale,
 		0.2, 0.0, 100.0,
@@ -3767,7 +4020,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_vac_ins_scale,
 		0.2, 0.0, 100.0,
@@ -3777,7 +4031,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&autovacuum_anl_scale,
 		0.1, 0.0, 100.0,
@@ -3787,7 +4042,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&CheckPointCompletionTarget,
 		0.9, 0.0, 1.0,
@@ -3797,7 +4053,8 @@ static struct config_real ConfigureNamesReal[] =
 	{
 		{"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
-			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log).")
+			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log)."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_statement_sample_rate,
 		1.0, 0.0, 1.0,
@@ -3808,7 +4065,8 @@ static struct config_real ConfigureNamesReal[] =
 		{"log_transaction_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the fraction of transactions from which to log all statements."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
-						 "statements for all transactions).")
+						 "statements for all transactions)."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_xact_sample_rate,
 		0.0, 0.0, 1.0,
@@ -3827,7 +4085,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
 			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&XLogArchiveCommand,
 		"",
@@ -3837,7 +4096,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryRestoreCommand,
 		"",
@@ -3847,7 +4107,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed at every restart point."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&archiveCleanupCommand,
 		"",
@@ -3857,7 +4118,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryEndCommand,
 		"",
@@ -3867,7 +4129,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Specifies the timeline to recover into."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_timeline_string,
 		"latest",
@@ -3877,7 +4140,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_string,
 		"",
@@ -3886,7 +4150,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the transaction ID up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_xid_string,
 		"",
@@ -3895,7 +4160,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the time stamp up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_time_string,
 		"",
@@ -3904,7 +4170,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the named restore point up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_name_string,
 		"",
@@ -3913,7 +4180,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recovery_target_lsn_string,
 		"",
@@ -3923,7 +4191,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"promote_trigger_file", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Specifies a file name whose presence ends recovery in the standby."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&PromoteTriggerFile,
 		"",
@@ -3944,7 +4213,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the name of the replication slot to use on the sending server."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&PrimarySlotName,
 		"",
@@ -3955,6 +4225,7 @@ static struct config_string ConfigureNamesString[] =
 		{"client_encoding", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the client's character set encoding."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT
 		},
 		&client_encoding_string,
@@ -3965,7 +4236,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Controls information prefixed to each log line."),
-			gettext_noop("If blank, no prefix is used.")
+			gettext_noop("If blank, no prefix is used."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_line_prefix,
 		"%m [%p] ",
@@ -3975,7 +4247,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Sets the time zone to use in log messages."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_timezone_string,
 		"GMT",
@@ -3987,6 +4260,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the display format for date and time values."),
 			gettext_noop("Also controls interpretation of ambiguous "
 						 "date inputs."),
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_REPORT
 		},
 		&datestyle_string,
@@ -3998,6 +4272,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_table_access_method", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default table access method for new tables."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME
 		},
 		&default_table_access_method,
@@ -4009,6 +4284,7 @@ static struct config_string ConfigureNamesString[] =
 		{"default_tablespace", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default tablespace to create tables and indexes in."),
 			gettext_noop("An empty string selects the database's default tablespace."),
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME
 		},
 		&default_tablespace,
@@ -4020,6 +4296,7 @@ static struct config_string ConfigureNamesString[] =
 		{"temp_tablespaces", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the tablespace(s) to use for temporary tables and sort files."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&temp_tablespaces,
@@ -4055,7 +4332,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the Bonjour service name."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bonjour_name,
 		"",
@@ -4068,6 +4346,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_collate", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the collation order locale."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_collate,
@@ -4079,6 +4358,7 @@ static struct config_string ConfigureNamesString[] =
 		{"lc_ctype", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the character classification and case conversion locale."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&locale_ctype,
@@ -4089,7 +4369,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_messages", PGC_SUSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the language in which messages are displayed."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_messages,
 		"",
@@ -4099,7 +4380,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_monetary", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting monetary amounts."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_monetary,
 		"C",
@@ -4109,7 +4391,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_numeric", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting numbers."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_numeric,
 		"C",
@@ -4119,7 +4402,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"lc_time", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the locale for formatting date and time values."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&locale_time,
 		"C",
@@ -4130,6 +4414,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_preload_libraries", PGC_SUSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into each backend."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&session_preload_libraries_string,
@@ -4141,6 +4426,7 @@ static struct config_string ConfigureNamesString[] =
 		{"shared_preload_libraries", PGC_POSTMASTER, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists shared libraries to preload into server."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&shared_preload_libraries_string,
@@ -4152,6 +4438,7 @@ static struct config_string ConfigureNamesString[] =
 		{"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
 			gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE
 		},
 		&local_preload_libraries_string,
@@ -4163,6 +4450,7 @@ static struct config_string ConfigureNamesString[] =
 		{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the schema search order for names that are not schema-qualified."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_EXPLAIN
 		},
 		&namespace_search_path,
@@ -4175,6 +4463,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_encoding", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server (database) character set encoding."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_encoding_string,
@@ -4187,6 +4476,7 @@ static struct config_string ConfigureNamesString[] =
 		{"server_version", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the server version."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&server_version_string,
@@ -4199,6 +4489,7 @@ static struct config_string ConfigureNamesString[] =
 		{"role", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the current role."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&role_string,
@@ -4211,6 +4502,7 @@ static struct config_string ConfigureNamesString[] =
 		{"session_authorization", PGC_USERSET, UNGROUPED,
 			gettext_noop("Sets the session user name."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE | GUC_NOT_WHILE_SEC_REST
 		},
 		&session_authorization_string,
@@ -4224,6 +4516,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Valid values are combinations of \"stderr\", "
 						 "\"syslog\", \"csvlog\", and \"eventlog\", "
 						 "depending on the platform."),
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT
 		},
 		&Log_destination_string,
@@ -4235,6 +4528,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the destination directory for log files."),
 			gettext_noop("Can be specified as relative to the data directory "
 						 "or as absolute path."),
+			GUC_SUPERUSER_ONLY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_directory,
@@ -4245,6 +4539,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_filename", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the file name pattern for log files."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_filename,
@@ -4256,7 +4551,8 @@ static struct config_string ConfigureNamesString[] =
 		{"syslog_ident", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the program name used to identify PostgreSQL "
 						 "messages in syslog."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_ident_str,
 		"postgres",
@@ -4267,7 +4563,8 @@ static struct config_string ConfigureNamesString[] =
 		{"event_source", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Sets the application name used to identify "
 						 "PostgreSQL messages in the event log."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&event_source,
 		DEFAULT_EVENT_SOURCE,
@@ -4278,6 +4575,7 @@ static struct config_string ConfigureNamesString[] =
 		{"TimeZone", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the time zone for displaying and interpreting time stamps."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&timezone_string,
@@ -4287,7 +4585,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"timezone_abbreviations", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Selects a file of time zone abbreviations."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&timezone_abbreviations_string,
 		NULL,
@@ -4298,7 +4597,8 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_group", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the owning group of the Unix-domain socket."),
 			gettext_noop("The owning user of the socket is always the user "
-						 "that starts the server.")
+						 "that starts the server."),
+			GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_group,
 		"",
@@ -4309,6 +4609,7 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the directories where Unix-domain sockets will be created."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_directories,
@@ -4324,6 +4625,7 @@ static struct config_string ConfigureNamesString[] =
 		{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the host name or IP address(es) to listen to."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT
 		},
 		&ListenAddresses,
@@ -4339,6 +4641,7 @@ static struct config_string ConfigureNamesString[] =
 		{"data_directory", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's data directory."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_SUPERUSER_ONLY | GUC_DISALLOW_IN_AUTO_FILE
 		},
 		&data_directory,
@@ -4350,6 +4653,7 @@ static struct config_string ConfigureNamesString[] =
 		{"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
 			gettext_noop("Sets the server's main configuration file."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_DISALLOW_IN_FILE | GUC_SUPERUSER_ONLY
 		},
 		&ConfigFileName,
@@ -4394,6 +4698,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
 			gettext_noop("Shows the name of the SSL library."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&ssl_library,
@@ -4408,7 +4713,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server certificate file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_cert_file,
 		"server.crt",
@@ -4418,7 +4724,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server private key file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_key_file,
 		"server.key",
@@ -4428,7 +4735,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate authority file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_ca_file,
 		"",
@@ -4438,7 +4746,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list file."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_crl_file,
 		"",
@@ -4448,7 +4757,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list directory."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&ssl_crl_dir,
 		"",
@@ -4470,6 +4780,7 @@ static struct config_string ConfigureNamesString[] =
 		{"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT
 		},
 		&SyncRepStandbyNames,
@@ -4480,7 +4791,8 @@ static struct config_string ConfigureNamesString[] =
 	{
 		{"default_text_search_config", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets default text search configuration."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&TSCurrentConfig,
 		"pg_catalog.simple",
@@ -4543,6 +4855,7 @@ static struct config_string ConfigureNamesString[] =
 		{"application_name", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Sets the application name to be reported in statistics and logs."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
 		},
 		&application_name,
@@ -4554,6 +4867,7 @@ static struct config_string ConfigureNamesString[] =
 		{"cluster_name", PGC_POSTMASTER, PROCESS_TITLE,
 			gettext_noop("Sets the name of the cluster, which is included in the process title."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_IS_NAME
 		},
 		&cluster_name,
@@ -4565,6 +4879,7 @@ static struct config_string ConfigureNamesString[] =
 		{"wal_consistency_checking", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the WAL resource managers for which WAL consistency checks are done."),
 			gettext_noop("Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."),
+			GUC_SUPERUSER_ONLY,
 			GUC_LIST_INPUT | GUC_NOT_IN_SAMPLE
 		},
 		&wal_consistency_checking_string,
@@ -4587,7 +4902,7 @@ static struct config_string ConfigureNamesString[] =
 		{"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Log backtrace for errors in these functions."),
 			NULL,
-			GUC_NOT_IN_SAMPLE
+			GUC_SUPERUSER_ONLY
 		},
 		&backtrace_functions,
 		"",
@@ -4606,7 +4921,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"backslash_quote", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Sets whether \"\\'\" is allowed in string literals."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&backslash_quote,
 		BACKSLASH_QUOTE_SAFE_ENCODING, backslash_quote_options,
@@ -4616,7 +4932,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"bytea_output", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the output format for bytea."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&bytea_output,
 		BYTEA_OUTPUT_HEX, bytea_output_options,
@@ -4627,7 +4944,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"client_min_messages", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the message levels that are sent to the client."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&client_min_messages,
 		NOTICE, client_message_level_options,
@@ -4637,7 +4955,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"compute_query_id", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Compute query identifiers."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&compute_query_id,
 		COMPUTE_QUERY_ID_AUTO, compute_query_id_options,
@@ -4649,6 +4968,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Enables the planner to use constraints to optimize queries."),
 			gettext_noop("Table scans will be skipped if their constraints"
 						 " guarantee that no rows match the query."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&constraint_exclusion,
@@ -4659,7 +4979,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_toast_compression", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the default compression method for compressible values."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&default_toast_compression,
 		TOAST_PGLZ_COMPRESSION,
@@ -4670,7 +4991,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"default_transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the transaction isolation level of each new transaction."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&DefaultXactIsoLevel,
 		XACT_READ_COMMITTED, isolation_level_options,
@@ -4681,6 +5003,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"transaction_isolation", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the current transaction's isolation level."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
 		},
 		&XactIsoLevel,
@@ -4692,6 +5015,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"IntervalStyle", PGC_USERSET, CLIENT_CONN_LOCALE,
 			gettext_noop("Sets the display format for interval values."),
 			NULL,
+			GUC_SUPERUSER_ONLY,
 			GUC_REPORT
 		},
 		&IntervalStyle,
@@ -4702,7 +5026,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the verbosity of logged messages."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Log_error_verbosity,
 		PGERROR_DEFAULT, log_error_verbosity_options,
@@ -4713,7 +5038,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_messages", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Sets the message levels that are logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_min_messages,
 		WARNING, server_message_level_options,
@@ -4724,7 +5050,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_min_error_statement", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Causes all statements generating error at or above this level to be logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&log_min_error_statement,
 		ERROR, server_message_level_options,
@@ -4734,7 +5061,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"log_statement", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the type of statements logged."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&log_statement,
 		LOGSTMT_NONE, log_statement_options,
@@ -4744,7 +5072,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&syslog_facility,
 #ifdef HAVE_SYSLOG
@@ -4759,7 +5088,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"session_replication_role", PGC_SUSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets the session's behavior for triggers and rewrite rules."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&SessionReplicationRole,
 		SESSION_REPLICATION_ROLE_ORIGIN, session_replication_role_options,
@@ -4769,7 +5099,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the current transaction's synchronization level."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&synchronous_commit,
 		SYNCHRONOUS_COMMIT_ON, synchronous_commit_options,
@@ -4779,7 +5110,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
 			gettext_noop("Allows archiving of WAL files using archive_command."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&XLogArchiveMode,
 		ARCHIVE_MODE_OFF, archive_mode_options,
@@ -4789,7 +5121,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the action to perform upon reaching the recovery target."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&recoveryTargetAction,
 		RECOVERY_TARGET_ACTION_PAUSE, recovery_target_action_options,
@@ -4800,7 +5133,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"trace_recovery_messages", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Enables logging of recovery-related debugging information."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
-						 " the level, the fewer messages are sent.")
+						 " the level, the fewer messages are sent."),
+			GUC_SUPERUSER_ONLY
 		},
 		&trace_recovery_messages,
 
@@ -4815,7 +5149,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"track_functions", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects function-level statistics on database activity."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&pgstat_track_functions,
 		TRACK_FUNC_OFF, track_function_options,
@@ -4825,7 +5160,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_compression", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Compresses full-page writes written in WAL file with specified method."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_compression,
 		WAL_COMPRESSION_NONE, wal_compression_options,
@@ -4835,7 +5171,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the level of information written to the WAL."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&wal_level,
 		WAL_LEVEL_REPLICA, wal_level_options,
@@ -4845,7 +5182,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the dynamic shared memory implementation used."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&dynamic_shared_memory_type,
 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
@@ -4855,7 +5193,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&shared_memory_type,
 		DEFAULT_SHARED_MEMORY_TYPE, shared_memory_options,
@@ -4865,7 +5204,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Selects the method used for forcing WAL updates to disk."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&sync_method,
 		DEFAULT_SYNC_METHOD, sync_method_options,
@@ -4875,7 +5215,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"xmlbinary", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets how binary values are to be encoded in XML."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&xmlbinary,
 		XMLBINARY_BASE64, xmlbinary_options,
@@ -4886,7 +5227,8 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"xmloption", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Sets whether XML data in implicit parsing and serialization "
 						 "operations is to be considered as documents or content fragments."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&xmloption,
 		XMLOPTION_CONTENT, xmloption_options,
@@ -4896,7 +5238,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Use of huge pages on Linux or Windows."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&huge_pages,
 		HUGE_PAGES_TRY, huge_pages_options,
@@ -4907,6 +5250,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"force_parallel_mode", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Forces use of parallel query facilities."),
 			gettext_noop("If possible, run query using a parallel worker and with parallel restrictions."),
+			GUC_SUPERUSER_ONLY,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&force_parallel_mode,
@@ -4917,7 +5261,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
 			gettext_noop("Chooses the algorithm for encrypting passwords."),
-			NULL
+			NULL,
+			GUC_SUPERUSER_ONLY
 		},
 		&Password_encryption,
 		PASSWORD_TYPE_SCRAM_SHA_256, password_encryption_options,
@@ -4930,6 +5275,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Prepared statements can have custom and generic plans, and the planner "
 						 "will attempt to choose which is better.  This can be set to override "
 						 "the default behavior."),
+			GUC_SUPERUSER_ONLY,
 			GUC_EXPLAIN
 		},
 		&plan_cache_mode,
@@ -4964,6 +5310,8 @@ static struct config_enum ConfigureNamesEnum[] =
 	{
 		{"recovery_init_sync_method", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
+			NULL,
+			GUC_SUPERUSER_ONLY,
 		},
 		&recovery_init_sync_method,
 		RECOVERY_INIT_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
@@ -7251,6 +7599,15 @@ parse_and_validate_value(struct config_generic *record,
 	return true;
 }
 
+static bool
+role_has_privileges(Oid roleid, int privileges)
+{
+	if (privileges & GUC_SUPERUSER_ONLY)
+		return superuser_arg(roleid);
+
+	return false;
+}
+
 
 /*
  * Sets option `name' to given value.
@@ -7398,7 +7755,8 @@ set_config_option(const char *name, const char *value,
 			break;
 		case PGC_SU_BACKEND:
 			/* Reject if we're connecting but user is not superuser */
-			if (context == PGC_BACKEND)
+			if (context == PGC_BACKEND &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -7445,7 +7803,8 @@ set_config_option(const char *name, const char *value,
 			}
 			break;
 		case PGC_SUSET:
-			if (context == PGC_USERSET || context == PGC_BACKEND)
+			if ((context == PGC_USERSET || context == PGC_BACKEND) &&
+				!role_has_privileges(GetUserId(), record->privileges))
 			{
 				ereport(elevel,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
@@ -8487,6 +8846,7 @@ replace_auto_config_value(ConfigVariable **head_p, ConfigVariable **tail_p,
 void
 AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 {
+	VariableSetKind kind;
 	char	   *name;
 	char	   *value;
 	bool		resetall = false;
@@ -8496,17 +8856,18 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 	char		AutoConfFileName[MAXPGPATH];
 	char		AutoConfTmpFileName[MAXPGPATH];
 
-	if (!superuser())
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("must be superuser to execute ALTER SYSTEM command")));
-
 	/*
 	 * Extract statement arguments
 	 */
 	name = altersysstmt->setstmt->name;
+	kind = altersysstmt->setstmt->kind;
 
-	switch (altersysstmt->setstmt->kind)
+	if (!superuser() && kind == VAR_RESET_ALL)
+		ereport(ERROR,
+				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+				 errmsg("must be superuser to execute ALTER SYSTEM RESET ALL command")));
+
+	switch (kind)
 	{
 		case VAR_SET_VALUE:
 			value = ExtractSetVariableArgs(altersysstmt->setstmt);
@@ -8550,6 +8911,15 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 					 errmsg("parameter \"%s\" cannot be changed",
 							name)));
 
+		/*
+		 * Deny non-superusers trying to run ALTER SYSTEM SET on variables
+		 * unless they belong to a role intended for the purpose.
+		 */
+		if (!role_has_privileges(GetUserId(), record->privileges))
+			ereport(ERROR,
+					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+					 errmsg("permission denied to set parameter \"%s\"", name)));
+
 		/*
 		 * If a value is specified, verify that it's sane.
 		 */
@@ -8911,6 +9281,7 @@ init_custom_variable(const char *name,
 					 const char *short_desc,
 					 const char *long_desc,
 					 GucContext context,
+					 int privileges,
 					 int flags,
 					 enum config_type type,
 					 size_t sz)
@@ -8956,6 +9327,7 @@ init_custom_variable(const char *name,
 	gen->group = CUSTOM_OPTIONS;
 	gen->short_desc = short_desc;
 	gen->long_desc = long_desc;
+	gen->privileges = privileges;
 	gen->flags = flags;
 	gen->vartype = type;
 
@@ -9154,6 +9526,7 @@ DefineCustomBoolVariable(const char *name,
 						 bool *valueAddr,
 						 bool bootValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucBoolCheckHook check_hook,
 						 GucBoolAssignHook assign_hook,
@@ -9162,8 +9535,8 @@ DefineCustomBoolVariable(const char *name,
 	struct config_bool *var;
 
 	var = (struct config_bool *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_BOOL, sizeof(struct config_bool));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_BOOL, sizeof(struct config_bool));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9182,6 +9555,7 @@ DefineCustomIntVariable(const char *name,
 						int minValue,
 						int maxValue,
 						GucContext context,
+						int privileges,
 						int flags,
 						GucIntCheckHook check_hook,
 						GucIntAssignHook assign_hook,
@@ -9190,8 +9564,8 @@ DefineCustomIntVariable(const char *name,
 	struct config_int *var;
 
 	var = (struct config_int *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_INT, sizeof(struct config_int));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_INT, sizeof(struct config_int));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9212,6 +9586,7 @@ DefineCustomRealVariable(const char *name,
 						 double minValue,
 						 double maxValue,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucRealCheckHook check_hook,
 						 GucRealAssignHook assign_hook,
@@ -9220,8 +9595,8 @@ DefineCustomRealVariable(const char *name,
 	struct config_real *var;
 
 	var = (struct config_real *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_REAL, sizeof(struct config_real));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_REAL, sizeof(struct config_real));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
@@ -9240,6 +9615,7 @@ DefineCustomStringVariable(const char *name,
 						   char **valueAddr,
 						   const char *bootValue,
 						   GucContext context,
+						   int privileges,
 						   int flags,
 						   GucStringCheckHook check_hook,
 						   GucStringAssignHook assign_hook,
@@ -9248,8 +9624,8 @@ DefineCustomStringVariable(const char *name,
 	struct config_string *var;
 
 	var = (struct config_string *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_STRING, sizeof(struct config_string));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_STRING, sizeof(struct config_string));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->check_hook = check_hook;
@@ -9266,6 +9642,7 @@ DefineCustomEnumVariable(const char *name,
 						 int bootValue,
 						 const struct config_enum_entry *options,
 						 GucContext context,
+						 int privileges,
 						 int flags,
 						 GucEnumCheckHook check_hook,
 						 GucEnumAssignHook assign_hook,
@@ -9274,8 +9651,8 @@ DefineCustomEnumVariable(const char *name,
 	struct config_enum *var;
 
 	var = (struct config_enum *)
-		init_custom_variable(name, short_desc, long_desc, context, flags,
-							 PGC_ENUM, sizeof(struct config_enum));
+		init_custom_variable(name, short_desc, long_desc, context, privileges,
+							 flags, PGC_ENUM, sizeof(struct config_enum));
 	var->variable = valueAddr;
 	var->boot_val = bootValue;
 	var->reset_val = bootValue;
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index a7c3a4958e..4e23109ead 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -198,6 +198,10 @@ typedef enum
 
 #define GUC_QUALIFIER_SEPARATOR '.'
 
+/*
+ * privilege bits required to modify a GUC variable
+ */
+
 /*
  * bit values in "flags" of a GUC variable
  */
@@ -294,6 +298,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 bool *valueAddr,
 									 bool bootValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
@@ -307,6 +312,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int minValue,
 									int maxValue,
 									GucContext context,
+									int privileges,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
@@ -320,6 +326,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 double minValue,
 									 double maxValue,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
@@ -331,6 +338,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   char **valueAddr,
 									   const char *bootValue,
 									   GucContext context,
+									   int privileges,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
@@ -343,6 +351,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int bootValue,
 									 const struct config_enum_entry *options,
 									 GucContext context,
+									 int privileges,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h
index 6b40f1eeb8..27288236ae 100644
--- a/src/include/utils/guc_tables.h
+++ b/src/include/utils/guc_tables.h
@@ -143,6 +143,7 @@ struct config_generic
 	enum config_group group;	/* to help organize variables by function */
 	const char *short_desc;		/* short desc. of this variable's purpose */
 	const char *long_desc;		/* long desc. of this variable's purpose */
+	int			privileges;		/* privileges bits, see guc.h */
 	int			flags;			/* flag bits, see guc.h */
 	/* variable fields, initialized at runtime: */
 	enum config_type vartype;	/* type of variable (set only at startup) */
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 6299adf71a..730e5f6d14 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -406,7 +406,7 @@ _PG_init(void)
 							 NULL,
 							 &plperl_use_strict,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	/*
@@ -420,7 +420,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_init,
 							   NULL,
-							   PGC_SIGHUP, 0,
+							   PGC_SIGHUP, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	/*
@@ -442,7 +442,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperl_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plperl.on_plperlu_init",
@@ -450,7 +450,7 @@ _PG_init(void)
 							   NULL,
 							   &plperl_on_plperlu_init,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	EmitWarningsOnPlaceholders("plperl");
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c
index 00aace2f39..2fe38ffc24 100644
--- a/src/pl/plpgsql/src/pl_handler.c
+++ b/src/pl/plpgsql/src/pl_handler.c
@@ -158,7 +158,7 @@ _PG_init(void)
 							 &plpgsql_variable_conflict,
 							 PLPGSQL_RESOLVE_ERROR,
 							 variable_conflict_options,
-							 PGC_SUSET, 0,
+							 PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.print_strict_params",
@@ -166,7 +166,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_print_strict_params,
 							 false,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomBoolVariable("plpgsql.check_asserts",
@@ -174,7 +174,7 @@ _PG_init(void)
 							 NULL,
 							 &plpgsql_check_asserts,
 							 true,
-							 PGC_USERSET, 0,
+							 PGC_USERSET, GUC_SUPERUSER_ONLY, 0,
 							 NULL, NULL, NULL);
 
 	DefineCustomStringVariable("plpgsql.extra_warnings",
@@ -182,7 +182,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_warnings_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_SUPERUSER_ONLY, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_warnings_assign_hook,
 							   NULL);
@@ -192,7 +192,7 @@ _PG_init(void)
 							   NULL,
 							   &plpgsql_extra_errors_string,
 							   "none",
-							   PGC_USERSET, GUC_LIST_INPUT,
+							   PGC_USERSET, GUC_SUPERUSER_ONLY, GUC_LIST_INPUT,
 							   plpgsql_extra_checks_check_hook,
 							   plpgsql_extra_errors_assign_hook,
 							   NULL);
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index e11837559d..d72506aa26 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -464,14 +464,14 @@ _PG_init(void)
 							   NULL,
 							   &pltcl_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 	DefineCustomStringVariable("pltclu.start_proc",
 							   gettext_noop("PL/TclU function to call once when pltclu is first used."),
 							   NULL,
 							   &pltclu_start_proc,
 							   NULL,
-							   PGC_SUSET, 0,
+							   PGC_SUSET, GUC_SUPERUSER_ONLY, 0,
 							   NULL, NULL, NULL);
 
 	pltcl_pm_init_done = true;
diff --git a/src/test/modules/delay_execution/delay_execution.c b/src/test/modules/delay_execution/delay_execution.c
index b3d0841ba8..e8f983c2c4 100644
--- a/src/test/modules/delay_execution/delay_execution.c
+++ b/src/test/modules/delay_execution/delay_execution.c
@@ -86,6 +86,7 @@ _PG_init(void)
 							0,
 							0, INT_MAX,
 							PGC_USERSET,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
diff --git a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
index 6b0a3db104..e6bc2b0a6a 100644
--- a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
+++ b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c
@@ -44,6 +44,7 @@ _PG_init(void)
 							   &ssl_passphrase,
 							   NULL,
 							   PGC_SIGHUP,
+							   GUC_SUPERUSER_ONLY,
 							   0,	/* no flags required */
 							   NULL,
 							   NULL,
diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c
index d0acef2652..d6f1e6ac0b 100644
--- a/src/test/modules/worker_spi/worker_spi.c
+++ b/src/test/modules/worker_spi/worker_spi.c
@@ -293,6 +293,7 @@ _PG_init(void)
 							1,
 							INT_MAX,
 							PGC_SIGHUP,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
@@ -309,6 +310,7 @@ _PG_init(void)
 							1,
 							100,
 							PGC_POSTMASTER,
+							GUC_SUPERUSER_ONLY,
 							0,
 							NULL,
 							NULL,
@@ -320,6 +322,7 @@ _PG_init(void)
 							   &worker_spi_database,
 							   "postgres",
 							   PGC_POSTMASTER,
+							   GUC_SUPERUSER_ONLY,
 							   0,
 							   NULL, NULL, NULL);
 
diff --git a/src/test/regress/expected/guc_priv_admin.out b/src/test/regress/expected/guc_priv_admin.out
new file mode 100644
index 0000000000..640b6e5581
--- /dev/null
+++ b/src/test/regress/expected/guc_priv_admin.out
@@ -0,0 +1,1794 @@
+-- Superuser DBA
+CREATE ROLE admin SUPERUSER;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ERROR:  parameter "post_auth_delay" cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+ERROR:  parameter "block_size" cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+ERROR:  parameter "data_checksums" cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+ERROR:  parameter "data_directory_mode" cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+ERROR:  parameter "debug_assertions" cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+ERROR:  parameter "in_hot_standby" cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+ERROR:  parameter "integer_datetimes" cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+ERROR:  parameter "lc_collate" cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+ERROR:  parameter "lc_ctype" cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+ERROR:  parameter "max_function_args" cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+ERROR:  parameter "max_identifier_length" cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+ERROR:  parameter "max_index_keys" cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+ERROR:  parameter "segment_size" cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+ERROR:  parameter "server_encoding" cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+ERROR:  parameter "server_version" cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+ERROR:  parameter "server_version_num" cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+ERROR:  parameter "ssl_library" cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_block_size" cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+ERROR:  parameter "wal_segment_size" cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+ERROR:  parameter "is_superuser" cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+RESET autovacuum_max_workers;  -- fail, requires restart
+ERROR:  parameter "autovacuum_max_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ERROR:  parameter "autovacuum_multixact_freeze_max_age" cannot be changed without restarting the server
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+RESET jit_provider;  -- fail, requires restart
+ERROR:  parameter "jit_provider" cannot be changed without restarting the server
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+RESET shared_preload_libraries;  -- fail, requires restart
+ERROR:  parameter "shared_preload_libraries" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+RESET bonjour;  -- fail, requires restart
+ERROR:  parameter "bonjour" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+RESET bonjour_name;  -- fail, requires restart
+ERROR:  parameter "bonjour_name" cannot be changed without restarting the server
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+RESET listen_addresses;  -- fail, requires restart
+ERROR:  parameter "listen_addresses" cannot be changed without restarting the server
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+RESET max_connections;  -- fail, requires restart
+ERROR:  parameter "max_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+RESET port;  -- fail, requires restart
+ERROR:  parameter "port" cannot be changed without restarting the server
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+RESET superuser_reserved_connections;  -- fail, requires restart
+ERROR:  parameter "superuser_reserved_connections" cannot be changed without restarting the server
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+RESET unix_socket_directories;  -- fail, requires restart
+ERROR:  parameter "unix_socket_directories" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+RESET unix_socket_group;  -- fail, requires restart
+ERROR:  parameter "unix_socket_group" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+RESET unix_socket_permissions;  -- fail, requires restart
+ERROR:  parameter "unix_socket_permissions" cannot be changed without restarting the server
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+RESET ignore_invalid_pages;  -- fail, requires restart
+ERROR:  parameter "ignore_invalid_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+RESET data_sync_retry;  -- fail, requires restart
+ERROR:  parameter "data_sync_retry" cannot be changed without restarting the server
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+RESET config_file;  -- fail, requires restart
+ERROR:  parameter "config_file" cannot be changed without restarting the server
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+ERROR:  parameter "config_file" cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+RESET data_directory;  -- fail, requires restart
+ERROR:  parameter "data_directory" cannot be changed without restarting the server
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+ERROR:  parameter "data_directory" cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+RESET external_pid_file;  -- fail, requires restart
+ERROR:  parameter "external_pid_file" cannot be changed without restarting the server
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+RESET max_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ERROR:  parameter "max_pred_locks_per_transaction" cannot be changed without restarting the server
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+RESET event_source;  -- fail, requires restart
+ERROR:  parameter "event_source" cannot be changed without restarting the server
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+RESET logging_collector;  -- fail, requires restart
+ERROR:  parameter "logging_collector" cannot be changed without restarting the server
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+RESET cluster_name;  -- fail, requires restart
+ERROR:  parameter "cluster_name" cannot be changed without restarting the server
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+RESET max_replication_slots;  -- fail, requires restart
+ERROR:  parameter "max_replication_slots" cannot be changed without restarting the server
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+RESET max_wal_senders;  -- fail, requires restart
+ERROR:  parameter "max_wal_senders" cannot be changed without restarting the server
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+RESET track_commit_timestamp;  -- fail, requires restart
+ERROR:  parameter "track_commit_timestamp" cannot be changed without restarting the server
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+RESET hot_standby;  -- fail, requires restart
+ERROR:  parameter "hot_standby" cannot be changed without restarting the server
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+RESET max_logical_replication_workers;  -- fail, requires restart
+ERROR:  parameter "max_logical_replication_workers" cannot be changed without restarting the server
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+RESET max_worker_processes;  -- fail, requires restart
+ERROR:  parameter "max_worker_processes" cannot be changed without restarting the server
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+RESET old_snapshot_threshold;  -- fail, requires restart
+ERROR:  parameter "old_snapshot_threshold" cannot be changed without restarting the server
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+RESET max_files_per_process;  -- fail, requires restart
+ERROR:  parameter "max_files_per_process" cannot be changed without restarting the server
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "dynamic_shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+RESET huge_pages;  -- fail, requires restart
+ERROR:  parameter "huge_pages" cannot be changed without restarting the server
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+RESET max_prepared_transactions;  -- fail, requires restart
+ERROR:  parameter "max_prepared_transactions" cannot be changed without restarting the server
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ERROR:  parameter "min_dynamic_shared_memory" cannot be changed without restarting the server
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+RESET shared_buffers;  -- fail, requires restart
+ERROR:  parameter "shared_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+RESET shared_memory_type;  -- fail, requires restart
+ERROR:  parameter "shared_memory_type" cannot be changed without restarting the server
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+RESET track_activity_query_size;  -- fail, requires restart
+ERROR:  parameter "track_activity_query_size" cannot be changed without restarting the server
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+RESET archive_mode;  -- fail, requires restart
+ERROR:  parameter "archive_mode" cannot be changed without restarting the server
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+RESET recovery_target_action;  -- fail, requires restart
+ERROR:  parameter "recovery_target_action" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+RESET recovery_target_inclusive;  -- fail, requires restart
+ERROR:  parameter "recovery_target_inclusive" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+RESET recovery_target_lsn;  -- fail, requires restart
+ERROR:  parameter "recovery_target_lsn" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+RESET recovery_target_name;  -- fail, requires restart
+ERROR:  parameter "recovery_target_name" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+RESET recovery_target_time;  -- fail, requires restart
+ERROR:  parameter "recovery_target_time" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+RESET recovery_target_timeline;  -- fail, requires restart
+ERROR:  parameter "recovery_target_timeline" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+RESET recovery_target_xid;  -- fail, requires restart
+ERROR:  parameter "recovery_target_xid" cannot be changed without restarting the server
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+RESET wal_buffers;  -- fail, requires restart
+ERROR:  parameter "wal_buffers" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+RESET wal_level;  -- fail, requires restart
+ERROR:  parameter "wal_level" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+RESET wal_log_hints;  -- fail, requires restart
+ERROR:  parameter "wal_log_hints" cannot be changed without restarting the server
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+RESET autovacuum;  -- fail, requires reload
+ERROR:  parameter "autovacuum" cannot be changed now
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_analyze_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+RESET autovacuum_naptime;  -- fail, requires reload
+ERROR:  parameter "autovacuum_naptime" cannot be changed now
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_delay" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_cost_limit" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_insert_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_scale_factor" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ERROR:  parameter "autovacuum_vacuum_threshold" cannot be changed now
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+RESET authentication_timeout;  -- fail, requires reload
+ERROR:  parameter "authentication_timeout" cannot be changed now
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET db_user_namespace = OFF;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+RESET db_user_namespace;  -- fail, requires reload
+ERROR:  parameter "db_user_namespace" cannot be changed now
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+RESET krb_caseins_users;  -- fail, requires reload
+ERROR:  parameter "krb_caseins_users" cannot be changed now
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+RESET krb_server_keyfile;  -- fail, requires reload
+ERROR:  parameter "krb_server_keyfile" cannot be changed now
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+RESET ssl_ca_file;  -- fail, requires reload
+ERROR:  parameter "ssl_ca_file" cannot be changed now
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+RESET ssl_cert_file;  -- fail, requires reload
+ERROR:  parameter "ssl_cert_file" cannot be changed now
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_ciphers = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+RESET ssl_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+RESET ssl_crl_dir;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_dir" cannot be changed now
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+RESET ssl_crl_file;  -- fail, requires reload
+ERROR:  parameter "ssl_crl_file" cannot be changed now
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+RESET ssl_dh_params_file;  -- fail, requires reload
+ERROR:  parameter "ssl_dh_params_file" cannot be changed now
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ERROR:  parameter "ssl_ecdh_curve" cannot be changed now
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+RESET ssl_key_file;  -- fail, requires reload
+ERROR:  parameter "ssl_key_file" cannot be changed now
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ERROR:  parameter "ssl_min_protocol_version" cannot be changed now
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+RESET ssl_passphrase_command;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ERROR:  parameter "ssl_passphrase_command_supports_reload" cannot be changed now
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ERROR:  parameter "ssl_prefer_server_ciphers" cannot be changed now
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+RESET pre_auth_delay;  -- fail, requires reload
+ERROR:  parameter "pre_auth_delay" cannot be changed now
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ERROR:  parameter "remove_temp_files_after_crash" cannot be changed now
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+RESET trace_recovery_messages;  -- fail, requires reload
+ERROR:  parameter "trace_recovery_messages" cannot be changed now
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+RESET recovery_init_sync_method;  -- fail, requires reload
+ERROR:  parameter "recovery_init_sync_method" cannot be changed now
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+RESET restart_after_crash;  -- fail, requires reload
+ERROR:  parameter "restart_after_crash" cannot be changed now
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_page" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ERROR:  parameter "max_pred_locks_per_relation" cannot be changed now
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ERROR:  parameter "log_autovacuum_min_duration" cannot be changed now
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+RESET log_checkpoints;  -- fail, requires reload
+ERROR:  parameter "log_checkpoints" cannot be changed now
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+RESET log_hostname;  -- fail, requires reload
+ERROR:  parameter "log_hostname" cannot be changed now
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+RESET log_line_prefix;  -- fail, requires reload
+ERROR:  parameter "log_line_prefix" cannot be changed now
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ERROR:  parameter "log_recovery_conflict_waits" cannot be changed now
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+RESET log_timezone;  -- fail, requires reload
+ERROR:  parameter "log_timezone" cannot be changed now
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+RESET log_directory;  -- fail, requires reload
+ERROR:  parameter "log_directory" cannot be changed now
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+RESET log_file_mode;  -- fail, requires reload
+ERROR:  parameter "log_file_mode" cannot be changed now
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+RESET log_filename;  -- fail, requires reload
+ERROR:  parameter "log_filename" cannot be changed now
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+RESET log_rotation_age;  -- fail, requires reload
+ERROR:  parameter "log_rotation_age" cannot be changed now
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+RESET log_rotation_size;  -- fail, requires reload
+ERROR:  parameter "log_rotation_size" cannot be changed now
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ERROR:  parameter "log_truncate_on_rotation" cannot be changed now
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+RESET syslog_ident;  -- fail, requires reload
+ERROR:  parameter "syslog_ident" cannot be changed now
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ERROR:  parameter "syslog_sequence_numbers" cannot be changed now
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+RESET syslog_split_messages;  -- fail, requires reload
+ERROR:  parameter "syslog_split_messages" cannot be changed now
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+RESET synchronous_standby_names;  -- fail, requires reload
+ERROR:  parameter "synchronous_standby_names" cannot be changed now
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ERROR:  parameter "vacuum_defer_cleanup_age" cannot be changed now
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "max_slot_wal_keep_size" cannot be changed now
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+RESET wal_keep_size;  -- fail, requires reload
+ERROR:  parameter "wal_keep_size" cannot be changed now
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+RESET hot_standby_feedback;  -- fail, requires reload
+ERROR:  parameter "hot_standby_feedback" cannot be changed now
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+RESET max_standby_archive_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_archive_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ERROR:  parameter "max_standby_streaming_delay" cannot be changed now
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+RESET primary_conninfo;  -- fail, requires reload
+ERROR:  parameter "primary_conninfo" cannot be changed now
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+RESET primary_slot_name;  -- fail, requires reload
+ERROR:  parameter "primary_slot_name" cannot be changed now
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+RESET promote_trigger_file;  -- fail, requires reload
+ERROR:  parameter "promote_trigger_file" cannot be changed now
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ERROR:  parameter "recovery_min_apply_delay" cannot be changed now
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_create_temp_slot" cannot be changed now
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_status_interval" cannot be changed now
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+RESET wal_receiver_timeout;  -- fail, requires reload
+ERROR:  parameter "wal_receiver_timeout" cannot be changed now
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ERROR:  parameter "wal_retrieve_retry_interval" cannot be changed now
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ERROR:  parameter "max_sync_workers_per_subscription" cannot be changed now
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+RESET bgwriter_delay;  -- fail, requires reload
+ERROR:  parameter "bgwriter_delay" cannot be changed now
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+RESET bgwriter_flush_after;  -- fail, requires reload
+ERROR:  parameter "bgwriter_flush_after" cannot be changed now
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_maxpages" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ERROR:  parameter "bgwriter_lru_multiplier" cannot be changed now
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+RESET autovacuum_work_mem;  -- fail, requires reload
+ERROR:  parameter "autovacuum_work_mem" cannot be changed now
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+RESET stats_temp_directory;  -- fail, requires reload
+ERROR:  parameter "stats_temp_directory" cannot be changed now
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+RESET archive_cleanup_command;  -- fail, requires reload
+ERROR:  parameter "archive_cleanup_command" cannot be changed now
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+RESET recovery_end_command;  -- fail, requires reload
+ERROR:  parameter "recovery_end_command" cannot be changed now
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+RESET restore_command;  -- fail, requires reload
+ERROR:  parameter "restore_command" cannot be changed now
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+RESET archive_command;  -- fail, requires reload
+ERROR:  parameter "archive_command" cannot be changed now
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+RESET archive_timeout;  -- fail, requires reload
+ERROR:  parameter "archive_timeout" cannot be changed now
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+RESET checkpoint_completion_target;  -- fail, requires reload
+ERROR:  parameter "checkpoint_completion_target" cannot be changed now
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+RESET checkpoint_flush_after;  -- fail, requires reload
+ERROR:  parameter "checkpoint_flush_after" cannot be changed now
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+RESET checkpoint_timeout;  -- fail, requires reload
+ERROR:  parameter "checkpoint_timeout" cannot be changed now
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+RESET checkpoint_warning;  -- fail, requires reload
+ERROR:  parameter "checkpoint_warning" cannot be changed now
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+RESET max_wal_size;  -- fail, requires reload
+ERROR:  parameter "max_wal_size" cannot be changed now
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+RESET min_wal_size;  -- fail, requires reload
+ERROR:  parameter "min_wal_size" cannot be changed now
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+RESET fsync;  -- fail, requires reload
+ERROR:  parameter "fsync" cannot be changed now
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+RESET full_page_writes;  -- fail, requires reload
+ERROR:  parameter "full_page_writes" cannot be changed now
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+RESET wal_sync_method;  -- fail, requires reload
+ERROR:  parameter "wal_sync_method" cannot be changed now
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+RESET wal_writer_delay;  -- fail, requires reload
+ERROR:  parameter "wal_writer_delay" cannot be changed now
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+RESET wal_writer_flush_after;  -- fail, requires reload
+ERROR:  parameter "wal_writer_flush_after" cannot be changed now
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_discard_caches = 2;  -- ok
+RESET debug_discard_caches;  -- ok
+ALTER SYSTEM SET debug_discard_caches = 2;  -- ok
+ALTER SYSTEM RESET debug_discard_caches;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_debugging_support" cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ERROR:  parameter "jit_profiling_support" cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_connections" cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ERROR:  parameter "log_disconnections" cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+ERROR:  parameter "transaction_deferrable" cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+ERROR:  parameter "transaction_read_only" cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+ERROR:  parameter "ssl_renegotiation_limit" cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- ok
+ALTER SYSTEM RESET enable_memoize;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+ERROR:  parameter "seed" cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 7be89178f0..40b5ea3940 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,7 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_admin.sql b/src/test/regress/sql/guc_priv_admin.sql
new file mode 100644
index 0000000000..7bb2ed0e2b
--- /dev/null
+++ b/src/test/regress/sql/guc_priv_admin.sql
@@ -0,0 +1,1422 @@
+-- Superuser DBA
+CREATE ROLE admin SUPERUSER;
+-- Perform all operations as user 'admin' --
+SET SESSION AUTHORIZATION admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
+RESET ignore_system_indexes;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+SET post_auth_delay = 50;  -- fail, cannot be set after connection start
+RESET post_auth_delay;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET post_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET post_auth_delay;  -- ok
+-- PGC_INTERNAL / PRESET_OPTIONS
+SET block_size = 50;  -- fail, cannot be changed
+RESET block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET block_size;  -- fail, cannot be changed
+SET data_checksums = OFF;  -- fail, cannot be changed
+RESET data_checksums;  -- fail, cannot be changed
+ALTER SYSTEM SET data_checksums = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_checksums;  -- fail, cannot be changed
+SET data_directory_mode = 50;  -- fail, cannot be changed
+RESET data_directory_mode;  -- fail, cannot be changed
+ALTER SYSTEM SET data_directory_mode = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory_mode;  -- fail, cannot be changed
+SET debug_assertions = OFF;  -- fail, cannot be changed
+RESET debug_assertions;  -- fail, cannot be changed
+ALTER SYSTEM SET debug_assertions = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET debug_assertions;  -- fail, cannot be changed
+SET in_hot_standby = OFF;  -- fail, cannot be changed
+RESET in_hot_standby;  -- fail, cannot be changed
+ALTER SYSTEM SET in_hot_standby = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET in_hot_standby;  -- fail, cannot be changed
+SET integer_datetimes = OFF;  -- fail, cannot be changed
+RESET integer_datetimes;  -- fail, cannot be changed
+ALTER SYSTEM SET integer_datetimes = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET integer_datetimes;  -- fail, cannot be changed
+SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_collate;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_collate = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_collate;  -- fail, cannot be changed
+SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+RESET lc_ctype;  -- fail, cannot be changed
+ALTER SYSTEM SET lc_ctype = 'en_US.UTF-8';  -- fail, cannot be changed
+ALTER SYSTEM RESET lc_ctype;  -- fail, cannot be changed
+SET max_function_args = 50;  -- fail, cannot be changed
+RESET max_function_args;  -- fail, cannot be changed
+ALTER SYSTEM SET max_function_args = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_function_args;  -- fail, cannot be changed
+SET max_identifier_length = 50;  -- fail, cannot be changed
+RESET max_identifier_length;  -- fail, cannot be changed
+ALTER SYSTEM SET max_identifier_length = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_identifier_length;  -- fail, cannot be changed
+SET max_index_keys = 50;  -- fail, cannot be changed
+RESET max_index_keys;  -- fail, cannot be changed
+ALTER SYSTEM SET max_index_keys = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET max_index_keys;  -- fail, cannot be changed
+SET segment_size = 50;  -- fail, cannot be changed
+RESET segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET segment_size;  -- fail, cannot be changed
+SET server_encoding = 'UTF8';  -- fail, cannot be changed
+RESET server_encoding;  -- fail, cannot be changed
+ALTER SYSTEM SET server_encoding = 'UTF8';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_encoding;  -- fail, cannot be changed
+SET server_version = '9.1';  -- fail, cannot be changed
+RESET server_version;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version = '9.1';  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version;  -- fail, cannot be changed
+SET server_version_num = 50;  -- fail, cannot be changed
+RESET server_version_num;  -- fail, cannot be changed
+ALTER SYSTEM SET server_version_num = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET server_version_num;  -- fail, cannot be changed
+SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+RESET ssl_library;  -- fail, cannot be changed
+ALTER SYSTEM SET ssl_library = 'OpenSSL';  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_library;  -- fail, cannot be changed
+SET wal_block_size = 50;  -- fail, cannot be changed
+RESET wal_block_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_block_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_block_size;  -- fail, cannot be changed
+SET wal_segment_size = 50;  -- fail, cannot be changed
+RESET wal_segment_size;  -- fail, cannot be changed
+ALTER SYSTEM SET wal_segment_size = 50;  -- fail, cannot be changed
+ALTER SYSTEM RESET wal_segment_size;  -- fail, cannot be changed
+-- PGC_INTERNAL / UNGROUPED
+SET is_superuser = OFF;  -- fail, cannot be changed
+RESET is_superuser;  -- fail, cannot be changed
+ALTER SYSTEM SET is_superuser = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET is_superuser;  -- fail, cannot be changed
+-- PGC_POSTMASTER / AUTOVACUUM
+SET autovacuum_freeze_max_age = 1000050000;  -- fail, requires restart
+RESET autovacuum_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+SET autovacuum_max_workers = 50;  -- fail, requires restart
+RESET autovacuum_max_workers;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, requires restart
+RESET autovacuum_multixact_freeze_max_age;  -- fail, requires restart
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+SET jit_provider = 'llvmjit';  -- fail, requires restart
+RESET jit_provider;  -- fail, requires restart
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- ok
+ALTER SYSTEM RESET jit_provider;  -- ok
+SET shared_preload_libraries = 'iconv, pcre';  -- fail, requires restart
+RESET shared_preload_libraries;  -- fail, requires restart
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- ok
+ALTER SYSTEM RESET shared_preload_libraries;  -- ok
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+SET bonjour = OFF;  -- fail, requires restart
+RESET bonjour;  -- fail, requires restart
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+SET bonjour_name = 'BonneNuit';  -- fail, requires restart
+RESET bonjour_name;  -- fail, requires restart
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+SET listen_addresses = 'localhost';  -- fail, requires restart
+RESET listen_addresses;  -- fail, requires restart
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+SET max_connections = 50;  -- fail, requires restart
+RESET max_connections;  -- fail, requires restart
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+SET port = 50;  -- fail, requires restart
+RESET port;  -- fail, requires restart
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+SET superuser_reserved_connections = 50;  -- fail, requires restart
+RESET superuser_reserved_connections;  -- fail, requires restart
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+SET unix_socket_directories = '/tmp';  -- fail, requires restart
+RESET unix_socket_directories;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+SET unix_socket_group = 'tenant';  -- fail, requires restart
+RESET unix_socket_group;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+SET unix_socket_permissions = 50;  -- fail, requires restart
+RESET unix_socket_permissions;  -- fail, requires restart
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+SET ignore_invalid_pages = OFF;  -- fail, requires restart
+RESET ignore_invalid_pages;  -- fail, requires restart
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+SET data_sync_retry = OFF;  -- fail, requires restart
+RESET data_sync_retry;  -- fail, requires restart
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / FILE_LOCATIONS
+SET config_file = '/usr/local/data/postgresql.conf';  -- fail, requires restart
+RESET config_file;  -- fail, requires restart
+ALTER SYSTEM SET config_file = '/usr/local/data/postgresql.conf';  -- fail, cannot be changed
+ALTER SYSTEM RESET config_file;  -- fail, cannot be changed
+SET data_directory = '/usr/local/data';  -- fail, requires restart
+RESET data_directory;  -- fail, requires restart
+ALTER SYSTEM SET data_directory = '/usr/local/data';  -- fail, cannot be changed
+ALTER SYSTEM RESET data_directory;  -- fail, cannot be changed
+SET external_pid_file = '/var/postgres/master.pid';  -- fail, requires restart
+RESET external_pid_file;  -- fail, requires restart
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- ok
+ALTER SYSTEM RESET external_pid_file;  -- ok
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+SET max_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+SET max_pred_locks_per_transaction = 50;  -- fail, requires restart
+RESET max_pred_locks_per_transaction;  -- fail, requires restart
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / LOGGING_WHERE
+SET event_source = 'PostgreSQL';  -- fail, requires restart
+RESET event_source;  -- fail, requires restart
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- ok
+ALTER SYSTEM RESET event_source;  -- ok
+SET logging_collector = OFF;  -- fail, requires restart
+RESET logging_collector;  -- fail, requires restart
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+-- PGC_POSTMASTER / PROCESS_TITLE
+SET cluster_name = 'BonCluster';  -- fail, requires restart
+RESET cluster_name;  -- fail, requires restart
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- ok
+ALTER SYSTEM RESET cluster_name;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SENDING
+SET max_replication_slots = 50;  -- fail, requires restart
+RESET max_replication_slots;  -- fail, requires restart
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+SET max_wal_senders = 50;  -- fail, requires restart
+RESET max_wal_senders;  -- fail, requires restart
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+SET track_commit_timestamp = OFF;  -- fail, requires restart
+RESET track_commit_timestamp;  -- fail, requires restart
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+SET hot_standby = OFF;  -- fail, requires restart
+RESET hot_standby;  -- fail, requires restart
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+SET max_logical_replication_workers = 50;  -- fail, requires restart
+RESET max_logical_replication_workers;  -- fail, requires restart
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+SET max_worker_processes = 50;  -- fail, requires restart
+RESET max_worker_processes;  -- fail, requires restart
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+SET old_snapshot_threshold = 50;  -- fail, requires restart
+RESET old_snapshot_threshold;  -- fail, requires restart
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- ok
+ALTER SYSTEM RESET old_snapshot_threshold;  -- ok
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+SET max_files_per_process = 1073741855;  -- fail, requires restart
+RESET max_files_per_process;  -- fail, requires restart
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+SET dynamic_shared_memory_type = 'posix';  -- fail, requires restart
+RESET dynamic_shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+SET huge_pages = 'try';  -- fail, requires restart
+RESET huge_pages;  -- fail, requires restart
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+SET max_prepared_transactions = 50;  -- fail, requires restart
+RESET max_prepared_transactions;  -- fail, requires restart
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+SET min_dynamic_shared_memory = 50;  -- fail, requires restart
+RESET min_dynamic_shared_memory;  -- fail, requires restart
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+SET shared_buffers = 50;  -- fail, requires restart
+RESET shared_buffers;  -- fail, requires restart
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+SET shared_memory_type = 'mmap';  -- fail, requires restart
+RESET shared_memory_type;  -- fail, requires restart
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+SET track_activity_query_size = 524338;  -- fail, requires restart
+RESET track_activity_query_size;  -- fail, requires restart
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / WAL_ARCHIVING
+SET archive_mode = 'off';  -- fail, requires restart
+RESET archive_mode;  -- fail, requires restart
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+SET recovery_target_action = 'pause';  -- fail, requires restart
+RESET recovery_target_action;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+SET recovery_target_inclusive = OFF;  -- fail, requires restart
+RESET recovery_target_inclusive;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+SET recovery_target_lsn = '16/B374D848';  -- fail, requires restart
+RESET recovery_target_lsn;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+SET recovery_target_name = 'BonPoint';  -- fail, requires restart
+RESET recovery_target_name;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, requires restart
+RESET recovery_target_time;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+SET recovery_target_timeline = 'latest';  -- fail, requires restart
+RESET recovery_target_timeline;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+SET recovery_target_xid = '12345678';  -- fail, requires restart
+RESET recovery_target_xid;  -- fail, requires restart
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / WAL_SETTINGS
+SET wal_buffers = 50;  -- fail, requires restart
+RESET wal_buffers;  -- fail, requires restart
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+SET wal_level = 'replica';  -- fail, requires restart
+RESET wal_level;  -- fail, requires restart
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+SET wal_log_hints = OFF;  -- fail, requires restart
+RESET wal_log_hints;  -- fail, requires restart
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / AUTOVACUUM
+SET autovacuum = OFF;  -- fail, requires reload
+RESET autovacuum;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+SET autovacuum_analyze_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_analyze_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+SET autovacuum_analyze_threshold = 50;  -- fail, requires reload
+RESET autovacuum_analyze_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+SET autovacuum_naptime = 50;  -- fail, requires reload
+RESET autovacuum_naptime;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+SET autovacuum_vacuum_cost_delay = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_delay;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+SET autovacuum_vacuum_cost_limit = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_cost_limit;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+SET autovacuum_vacuum_insert_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_insert_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+SET autovacuum_vacuum_scale_factor = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_scale_factor;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+SET autovacuum_vacuum_threshold = 50;  -- fail, requires reload
+RESET autovacuum_vacuum_threshold;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+SET authentication_timeout = 50;  -- fail, requires reload
+RESET authentication_timeout;  -- fail, requires reload
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+SET db_user_namespace = OFF;  -- fail, requires reload
+RESET db_user_namespace;  -- fail, requires reload
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+SET krb_caseins_users = OFF;  -- fail, requires reload
+RESET krb_caseins_users;  -- fail, requires reload
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+SET krb_server_keyfile = 'krb/server.key';  -- fail, requires reload
+RESET krb_server_keyfile;  -- fail, requires reload
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_SSL
+SET ssl_ca_file = 'ca/server.ca';  -- fail, requires reload
+RESET ssl_ca_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+SET ssl_cert_file = 'crt/server.crt';  -- fail, requires reload
+RESET ssl_cert_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+SET ssl_ciphers = 'none';  -- fail, requires reload
+RESET ssl_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+SET ssl_crl_dir = 'crl/';  -- fail, requires reload
+RESET ssl_crl_dir;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+SET ssl_crl_file = 'crl/server.crl';  -- fail, requires reload
+RESET ssl_crl_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+SET ssl_dh_params_file = 'ssl/params';  -- fail, requires reload
+RESET ssl_dh_params_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+SET ssl_ecdh_curve = 'none';  -- fail, requires reload
+RESET ssl_ecdh_curve;  -- fail, requires reload
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+SET ssl_key_file = 'crl/server.key';  -- fail, requires reload
+RESET ssl_key_file;  -- fail, requires reload
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, requires reload
+RESET ssl_min_protocol_version;  -- fail, requires reload
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+SET ssl_passphrase_command = '/bin/passphrase';  -- fail, requires reload
+RESET ssl_passphrase_command;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+SET ssl_passphrase_command_supports_reload = OFF;  -- fail, requires reload
+RESET ssl_passphrase_command_supports_reload;  -- fail, requires reload
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+SET ssl_prefer_server_ciphers = OFF;  -- fail, requires reload
+RESET ssl_prefer_server_ciphers;  -- fail, requires reload
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+SET pre_auth_delay = 50;  -- fail, requires reload
+RESET pre_auth_delay;  -- fail, requires reload
+ALTER SYSTEM SET pre_auth_delay = 50;  -- ok
+ALTER SYSTEM RESET pre_auth_delay;  -- ok
+SET remove_temp_files_after_crash = OFF;  -- fail, requires reload
+RESET remove_temp_files_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+SET trace_recovery_messages = 'log';  -- fail, requires reload
+RESET trace_recovery_messages;  -- fail, requires reload
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+SET recovery_init_sync_method = 'fsync';  -- fail, requires reload
+RESET recovery_init_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+SET restart_after_crash = OFF;  -- fail, requires reload
+RESET restart_after_crash;  -- fail, requires reload
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+SET max_pred_locks_per_page = 50;  -- fail, requires reload
+RESET max_pred_locks_per_page;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+SET max_pred_locks_per_relation = 50;  -- fail, requires reload
+RESET max_pred_locks_per_relation;  -- fail, requires reload
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / LOGGING_WHAT
+SET log_autovacuum_min_duration = 50;  -- fail, requires reload
+RESET log_autovacuum_min_duration;  -- fail, requires reload
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+SET log_checkpoints = OFF;  -- fail, requires reload
+RESET log_checkpoints;  -- fail, requires reload
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+SET log_hostname = OFF;  -- fail, requires reload
+RESET log_hostname;  -- fail, requires reload
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+SET log_line_prefix = '%m [%p] ';  -- fail, requires reload
+RESET log_line_prefix;  -- fail, requires reload
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+SET log_recovery_conflict_waits = OFF;  -- fail, requires reload
+RESET log_recovery_conflict_waits;  -- fail, requires reload
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+SET log_timezone = 'Europe/Helsinki';  -- fail, requires reload
+RESET log_timezone;  -- fail, requires reload
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+SET log_directory = 'log';  -- fail, requires reload
+RESET log_directory;  -- fail, requires reload
+ALTER SYSTEM SET log_directory = 'log';  -- ok
+ALTER SYSTEM RESET log_directory;  -- ok
+SET log_file_mode = 50;  -- fail, requires reload
+RESET log_file_mode;  -- fail, requires reload
+ALTER SYSTEM SET log_file_mode = 50;  -- ok
+ALTER SYSTEM RESET log_file_mode;  -- ok
+SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, requires reload
+RESET log_filename;  -- fail, requires reload
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- ok
+ALTER SYSTEM RESET log_filename;  -- ok
+SET log_rotation_age = 50;  -- fail, requires reload
+RESET log_rotation_age;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_age = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_age;  -- ok
+SET log_rotation_size = 50;  -- fail, requires reload
+RESET log_rotation_size;  -- fail, requires reload
+ALTER SYSTEM SET log_rotation_size = 50;  -- ok
+ALTER SYSTEM RESET log_rotation_size;  -- ok
+SET log_truncate_on_rotation = OFF;  -- fail, requires reload
+RESET log_truncate_on_rotation;  -- fail, requires reload
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+SET syslog_ident = 'postgres';  -- fail, requires reload
+RESET syslog_ident;  -- fail, requires reload
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- ok
+ALTER SYSTEM RESET syslog_ident;  -- ok
+SET syslog_sequence_numbers = OFF;  -- fail, requires reload
+RESET syslog_sequence_numbers;  -- fail, requires reload
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- ok
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- ok
+SET syslog_split_messages = OFF;  -- fail, requires reload
+RESET syslog_split_messages;  -- fail, requires reload
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- ok
+ALTER SYSTEM RESET syslog_split_messages;  -- ok
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, requires reload
+RESET synchronous_standby_names;  -- fail, requires reload
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+SET vacuum_defer_cleanup_age = 50;  -- fail, requires reload
+RESET vacuum_defer_cleanup_age;  -- fail, requires reload
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / REPLICATION_SENDING
+SET max_slot_wal_keep_size = 50;  -- fail, requires reload
+RESET max_slot_wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+SET wal_keep_size = 50;  -- fail, requires reload
+RESET wal_keep_size;  -- fail, requires reload
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / REPLICATION_STANDBY
+SET hot_standby_feedback = OFF;  -- fail, requires reload
+RESET hot_standby_feedback;  -- fail, requires reload
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+SET max_standby_archive_delay = 50;  -- fail, requires reload
+RESET max_standby_archive_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+SET max_standby_streaming_delay = 50;  -- fail, requires reload
+RESET max_standby_streaming_delay;  -- fail, requires reload
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, requires reload
+RESET primary_conninfo;  -- fail, requires reload
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+SET primary_slot_name = 'bonne_fente';  -- fail, requires reload
+RESET primary_slot_name;  -- fail, requires reload
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+SET promote_trigger_file = 'promote.trigger';  -- fail, requires reload
+RESET promote_trigger_file;  -- fail, requires reload
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+SET recovery_min_apply_delay = 50;  -- fail, requires reload
+RESET recovery_min_apply_delay;  -- fail, requires reload
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+SET wal_receiver_create_temp_slot = OFF;  -- fail, requires reload
+RESET wal_receiver_create_temp_slot;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+SET wal_receiver_status_interval = 50;  -- fail, requires reload
+RESET wal_receiver_status_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+SET wal_receiver_timeout = 50;  -- fail, requires reload
+RESET wal_receiver_timeout;  -- fail, requires reload
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+SET wal_retrieve_retry_interval = 50;  -- fail, requires reload
+RESET wal_retrieve_retry_interval;  -- fail, requires reload
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+SET max_sync_workers_per_subscription = 50;  -- fail, requires reload
+RESET max_sync_workers_per_subscription;  -- fail, requires reload
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+SET bgwriter_delay = 50;  -- fail, requires reload
+RESET bgwriter_delay;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_delay = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_delay;  -- ok
+SET bgwriter_flush_after = 50;  -- fail, requires reload
+RESET bgwriter_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_flush_after;  -- ok
+SET bgwriter_lru_maxpages = 50;  -- fail, requires reload
+RESET bgwriter_lru_maxpages;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- ok
+SET bgwriter_lru_multiplier = 5;  -- fail, requires reload
+RESET bgwriter_lru_multiplier;  -- fail, requires reload
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- ok
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- ok
+-- PGC_SIGHUP / RESOURCES_MEM
+SET autovacuum_work_mem = 50;  -- fail, requires reload
+RESET autovacuum_work_mem;  -- fail, requires reload
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+SET stats_temp_directory = 'pg_stat_tmp';  -- fail, requires reload
+RESET stats_temp_directory;  -- fail, requires reload
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, requires reload
+RESET archive_cleanup_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+SET recovery_end_command = '/bin/recover my stuff';  -- fail, requires reload
+RESET recovery_end_command;  -- fail, requires reload
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+SET restore_command = '/bin/restore my stuff';  -- fail, requires reload
+RESET restore_command;  -- fail, requires reload
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVING
+SET archive_command = '/bin/archive my stuff';  -- fail, requires reload
+RESET archive_command;  -- fail, requires reload
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+SET archive_timeout = 50;  -- fail, requires reload
+RESET archive_timeout;  -- fail, requires reload
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+SET checkpoint_completion_target = 0;  -- fail, requires reload
+RESET checkpoint_completion_target;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+SET checkpoint_flush_after = 50;  -- fail, requires reload
+RESET checkpoint_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+SET checkpoint_timeout = 50;  -- fail, requires reload
+RESET checkpoint_timeout;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+SET checkpoint_warning = 50;  -- fail, requires reload
+RESET checkpoint_warning;  -- fail, requires reload
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+SET max_wal_size = 50;  -- fail, requires reload
+RESET max_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+SET min_wal_size = 50;  -- fail, requires reload
+RESET min_wal_size;  -- fail, requires reload
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / WAL_SETTINGS
+SET fsync = OFF;  -- fail, requires reload
+RESET fsync;  -- fail, requires reload
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+SET full_page_writes = OFF;  -- fail, requires reload
+RESET full_page_writes;  -- fail, requires reload
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+SET wal_sync_method = 'open_datasync';  -- fail, requires reload
+RESET wal_sync_method;  -- fail, requires reload
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+SET wal_writer_delay = 50;  -- fail, requires reload
+RESET wal_writer_delay;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+SET wal_writer_flush_after = 50;  -- fail, requires reload
+RESET wal_writer_flush_after;  -- fail, requires reload
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- ok
+RESET lc_messages;  -- ok
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_messages;  -- ok
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- ok
+RESET dynamic_library_path;  -- ok
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- ok
+ALTER SYSTEM RESET dynamic_library_path;  -- ok
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- ok
+RESET session_preload_libraries;  -- ok
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET session_preload_libraries;  -- ok
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- ok
+RESET session_replication_role;  -- ok
+ALTER SYSTEM SET session_replication_role = 'origin';  -- ok
+ALTER SYSTEM RESET session_replication_role;  -- ok
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- ok
+RESET lo_compat_privileges;  -- ok
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- ok
+ALTER SYSTEM RESET lo_compat_privileges;  -- ok
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET debug_discard_caches = 2;  -- ok
+RESET debug_discard_caches;  -- ok
+ALTER SYSTEM SET debug_discard_caches = 2;  -- ok
+ALTER SYSTEM RESET debug_discard_caches;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET jit_dump_bitcode = OFF;  -- ok
+RESET jit_dump_bitcode;  -- ok
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- ok
+ALTER SYSTEM RESET jit_dump_bitcode;  -- ok
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+RESET wal_consistency_checking;  -- ok
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- ok
+ALTER SYSTEM RESET wal_consistency_checking;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- ok
+RESET deadlock_timeout;  -- ok
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- ok
+ALTER SYSTEM RESET deadlock_timeout;  -- ok
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- ok
+RESET update_process_title;  -- ok
+ALTER SYSTEM SET update_process_title = OFF;  -- ok
+ALTER SYSTEM RESET update_process_title;  -- ok
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+SET jit_debugging_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_debugging_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_debugging_support;  -- ok
+SET jit_profiling_support = OFF;  -- fail, cannot be set after connection start
+RESET jit_profiling_support;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- ok
+ALTER SYSTEM RESET jit_profiling_support;  -- ok
+-- PGC_SU_BACKEND / LOGGING_WHAT
+SET log_connections = OFF;  -- fail, cannot be set after connection start
+RESET log_connections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+SET log_disconnections = OFF;  -- fail, cannot be set after connection start
+RESET log_disconnections;  -- fail, cannot be set after connection start
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- ok
+ALTER SYSTEM RESET DateStyle;  -- ok
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- ok
+ALTER SYSTEM RESET IntervalStyle;  -- ok
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET TimeZone;  -- ok
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- ok
+ALTER SYSTEM RESET client_encoding;  -- ok
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- ok
+ALTER SYSTEM RESET default_text_search_config;  -- ok
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- ok
+ALTER SYSTEM RESET extra_float_digits;  -- ok
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_monetary;  -- ok
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_numeric;  -- ok
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- ok
+ALTER SYSTEM RESET lc_time;  -- ok
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- ok
+ALTER SYSTEM RESET timezone_abbreviations;  -- ok
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- ok
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- ok
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- ok
+ALTER SYSTEM RESET local_preload_libraries;  -- ok
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- ok
+ALTER SYSTEM RESET bytea_output;  -- ok
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- ok
+ALTER SYSTEM RESET check_function_bodies;  -- ok
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- ok
+ALTER SYSTEM RESET client_min_messages;  -- ok
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- ok
+ALTER SYSTEM RESET default_table_access_method;  -- ok
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET default_toast_compression;  -- ok
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_deferrable;  -- ok
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- ok
+ALTER SYSTEM RESET default_transaction_isolation;  -- ok
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- ok
+ALTER SYSTEM RESET default_transaction_read_only;  -- ok
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- ok
+ALTER SYSTEM RESET gin_pending_list_limit;  -- ok
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- ok
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- ok
+ALTER SYSTEM RESET idle_session_timeout;  -- ok
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- ok
+ALTER SYSTEM RESET lock_timeout;  -- ok
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- ok
+ALTER SYSTEM RESET row_security;  -- ok
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- ok
+ALTER SYSTEM RESET search_path;  -- ok
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- ok
+ALTER SYSTEM RESET statement_timeout;  -- ok
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+ALTER SYSTEM SET transaction_deferrable = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_deferrable;  -- fail, cannot be changed
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+ALTER SYSTEM SET transaction_read_only = OFF;  -- fail, cannot be changed
+ALTER SYSTEM RESET transaction_read_only;  -- fail, cannot be changed
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- ok
+ALTER SYSTEM RESET xmlbinary;  -- ok
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- ok
+ALTER SYSTEM RESET xmloption;  -- ok
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- ok
+ALTER SYSTEM RESET array_nulls;  -- ok
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- ok
+ALTER SYSTEM RESET quote_all_identifiers;  -- ok
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- ok
+ALTER SYSTEM RESET standard_conforming_strings;  -- ok
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- ok
+ALTER SYSTEM RESET synchronize_seqscans;  -- ok
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+ALTER SYSTEM SET ssl_renegotiation_limit = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET ssl_renegotiation_limit;  -- fail, cannot be changed
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- ok
+ALTER SYSTEM RESET force_parallel_mode;  -- ok
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- ok
+ALTER SYSTEM RESET jit_expressions;  -- ok
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- ok
+ALTER SYSTEM RESET jit_tuple_deforming;  -- ok
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- ok
+ALTER SYSTEM RESET enable_memoize;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- ok
+ALTER SYSTEM RESET parallel_leader_participation;  -- ok
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+ALTER SYSTEM SET seed = 0;  -- fail, cannot be changed
+ALTER SYSTEM RESET seed;  -- fail, cannot be changed
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0002-Adding-role-pg_manage_host_resource_settings.patchapplication/octet-stream; name=v6-0002-Adding-role-pg_manage_host_resource_settings.patch; x-unix-mode=0644Download
From f5e0dd97efdfb1bd0b0163806fc4e25d26989338 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 3 Aug 2021 09:36:14 -0700
Subject: [PATCH v6 02/19] Adding role pg_manage_host_resource_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls server resource usage (memory, disk, cpu, etc.)
---
 doc/src/sgml/user-manag.sgml                  |   12 +-
 src/backend/utils/misc/guc.c                  |   56 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../{guc_priv_admin.out => admin.out}         |    8 +-
 .../expected/host_resource_settings.out       | 1703 +++++++++++++++++
 src/test/regress/parallel_schedule            |    7 +-
 .../sql/{guc_priv_admin.sql => admin.sql}     |    8 +-
 .../regress/sql/host_resource_settings.sql    | 1051 ++++++++++
 9 files changed, 2815 insertions(+), 36 deletions(-)
 rename src/test/regress/expected/{guc_priv_admin.out => admin.out} (99%)
 create mode 100644 src/test/regress/expected/host_resource_settings.out
 rename src/test/regress/sql/{guc_priv_admin.sql => admin.sql} (99%)
 create mode 100644 src/test/regress/sql/host_resource_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 7b4b227173..77f7d38bd4 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -582,6 +582,10 @@ DROP ROLE doomed_role;
        <entry>Allow executing programs on the database server as the user the database runs as with
        COPY and other functions which allow executing a server-side program.</entry>
       </row>
+      <row>
+       <entry>pg_manage_host_resource_settings</entry>
+       <entry>Allow changing settings which control host resource usage.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -625,10 +629,16 @@ DROP ROLE doomed_role;
   great care should be taken when granting these roles to users.
   </para>
 
+  <para>
+  The <literal>pg_manage_host_resource_settings</literal> role is intended to
+  allow administrators to have a trusted, but non-superuser, role to configure
+  memory, cpu, disk and filehandle usage.
+  </para>
+
   <para>
   Care should be taken when granting these roles to ensure they are only used where
   needed and with the understanding that these roles grant access to privileged
-  information.
+  information or the ability to misconfigure the server.
   </para>
 
   <para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 1fe414304b..ded8a06c03 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2442,7 +2442,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_dynamic_shared_memory", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Amount of dynamic shared memory reserved at startup."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&min_dynamic_shared_memory,
@@ -2458,7 +2458,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"shared_buffers", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the number of shared memory buffers used by the server."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_BLOCKS
 		},
 		&NBuffers,
@@ -2470,7 +2470,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_buffers", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of temporary buffers used by each session."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN
 		},
 		&num_temp_buffers,
@@ -2542,7 +2542,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This much memory can be used by each internal "
 						 "sort operation and hash table before switching to "
 						 "temporary disk files."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB | GUC_EXPLAIN
 		},
 		&work_mem,
@@ -2554,7 +2554,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"maintenance_work_mem", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used for maintenance operations."),
 			gettext_noop("This includes operations such as VACUUM and CREATE INDEX."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
@@ -2567,7 +2567,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum memory to be used for logical decoding."),
 			gettext_noop("This much memory can be used by each internal "
 						 "reorder buffer before spilling to disk."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&logical_decoding_work_mem,
@@ -2584,7 +2584,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_stack_depth", PGC_SUSET, RESOURCES_MEM,
 			gettext_noop("Sets the maximum stack depth, in kilobytes."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&max_stack_depth,
@@ -2596,7 +2596,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"temp_file_limit", PGC_SUSET, RESOURCES_DISK,
 			gettext_noop("Limits the total size of all temporary files used by each process."),
 			gettext_noop("-1 means no limit."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&temp_file_limit,
@@ -2663,7 +2663,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_files_per_process", PGC_POSTMASTER, RESOURCES_KERNEL,
 			gettext_noop("Sets the maximum number of simultaneously open files for each server process."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_files_per_process,
 		1000, 64, INT_MAX,
@@ -2677,7 +2677,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_prepared_xacts,
 		0, 0, MAX_BACKENDS,
@@ -2841,7 +2841,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The shared lock table is sized on the assumption that "
 						 "at most max_locks_per_transaction * max_connections distinct "
 						 "objects will need to be locked at any one time."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2854,7 +2854,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The shared predicate lock table is sized on the assumption that "
 						 "at most max_pred_locks_per_transaction * max_connections distinct "
 						 "objects will need to be locked at any one time."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_predicate_locks_per_xact,
 		64, 10, INT_MAX,
@@ -2866,7 +2866,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of predicate-locked pages and tuples per relation."),
 			gettext_noop("If more than this total of pages and tuples in the same relation are locked "
 						 "by a connection, those locks are replaced by a relation-level lock."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_predicate_locks_per_relation,
 		-2, INT_MIN, INT_MAX,
@@ -2878,7 +2878,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the maximum number of predicate-locked tuples per page."),
 			gettext_noop("If more than this number of tuples on the same page are locked "
 						 "by a connection, those locks are replaced by a page-level lock."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_predicate_locks_per_page,
 		2, 0, INT_MAX,
@@ -3264,7 +3264,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"backend_flush_after", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_BLOCKS
 		},
 		&backend_flush_after,
@@ -3278,7 +3278,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Maximum number of concurrent worker processes."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_worker_processes,
 		8, 0, MAX_BACKENDS,
@@ -3518,7 +3518,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_maintenance_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per maintenance operation."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&max_parallel_maintenance_workers,
 		2, 0, 1024,
@@ -3529,7 +3529,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers_per_gather", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel processes per executor node."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers_per_gather,
@@ -3541,7 +3541,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_parallel_workers", PGC_USERSET, RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Sets the maximum number of parallel workers that can be active at one time."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&max_parallel_workers,
@@ -3553,7 +3553,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_work_mem", PGC_SIGHUP, RESOURCES_MEM,
 			gettext_noop("Sets the maximum memory to be used by each autovacuum worker process."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&autovacuum_work_mem,
@@ -3736,7 +3736,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"huge_page_size", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("The size of huge page that should be requested."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&huge_page_size,
@@ -3951,7 +3951,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"hash_mem_multiplier", PGC_USERSET, RESOURCES_MEM,
 			gettext_noop("Multiple of work_mem to use for hash tables."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&hash_mem_multiplier,
@@ -5183,7 +5183,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"dynamic_shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the dynamic shared memory implementation used."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&dynamic_shared_memory_type,
 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
@@ -5194,7 +5194,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"shared_memory_type", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Selects the shared memory implementation used for the main shared memory region."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&shared_memory_type,
 		DEFAULT_SHARED_MEMORY_TYPE, shared_memory_options,
@@ -5239,7 +5239,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
 			gettext_noop("Use of huge pages on Linux or Windows."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_HOST_RESOURCE_SETTINGS
 		},
 		&huge_pages,
 		HUGE_PAGES_TRY, huge_pages_options,
@@ -7605,7 +7605,11 @@ role_has_privileges(Oid roleid, int privileges)
 	if (privileges & GUC_SUPERUSER_ONLY)
 		return superuser_arg(roleid);
 
-	return false;
+	if ((privileges & GUC_MANAGE_HOST_RESOURCE_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_HOST_RESOURCE_SETTINGS))
+		return false;
+
+	return true;
 }
 
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 3da68016b6..daf62c2061 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -79,5 +79,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 'f', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9279', oid_symbol => 'ROLE_PG_MANAGE_HOST_RESOURCE_SETTINGS',
+  rolname => 'pg_manage_host_resource_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 4e23109ead..b1ffc58b6a 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -201,6 +201,7 @@ typedef enum
 /*
  * privilege bits required to modify a GUC variable
  */
+#define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/guc_priv_admin.out b/src/test/regress/expected/admin.out
similarity index 99%
rename from src/test/regress/expected/guc_priv_admin.out
rename to src/test/regress/expected/admin.out
index 640b6e5581..7dd3cf23dc 100644
--- a/src/test/regress/expected/guc_priv_admin.out
+++ b/src/test/regress/expected/admin.out
@@ -1,7 +1,7 @@
 -- Superuser DBA
-CREATE ROLE admin SUPERUSER;
--- Perform all operations as user 'admin' --
-SET SESSION AUTHORIZATION admin;
+CREATE ROLE regress_admin SUPERUSER;
+-- Perform all operations as user 'regress_admin' --
+SET SESSION AUTHORIZATION regress_admin;
 -- PGC_BACKEND / DEVELOPER_OPTIONS
 SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
 ERROR:  parameter "ignore_system_indexes" cannot be set after connection start
@@ -1791,4 +1791,4 @@ ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
 ALTER SYSTEM RESET wal_skip_threshold;  -- ok
 RESET statement_timeout;
 RESET SESSION AUTHORIZATION;
-DROP ROLE admin;
+DROP ROLE regress_admin;
diff --git a/src/test/regress/expected/host_resource_settings.out b/src/test/regress/expected/host_resource_settings.out
new file mode 100644
index 0000000000..ea8317e1b8
--- /dev/null
+++ b/src/test/regress/expected/host_resource_settings.out
@@ -0,0 +1,1703 @@
+-- Non-superuser with privileges to configure host resource usage
+CREATE ROLE regress_host_resource_admin NOSUPERUSER;
+GRANT pg_manage_host_resource_settings TO regress_host_resource_admin;
+-- Perform all operations as user 'regress_host_resource_admin' --
+SET SESSION AUTHORIZATION regress_host_resource_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+SET log_executor_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_host_resource_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 40b5ea3940..6ff05dece9 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -86,7 +86,12 @@ test: brin_bloom brin_multi
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort guc_priv_admin
+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort
+
+# ----------
+# Another group of parallel tests (GUC management roles related)
+# ----------
+test: admin host_resource_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/guc_priv_admin.sql b/src/test/regress/sql/admin.sql
similarity index 99%
rename from src/test/regress/sql/guc_priv_admin.sql
rename to src/test/regress/sql/admin.sql
index 7bb2ed0e2b..59f832ac9a 100644
--- a/src/test/regress/sql/guc_priv_admin.sql
+++ b/src/test/regress/sql/admin.sql
@@ -1,7 +1,7 @@
 -- Superuser DBA
-CREATE ROLE admin SUPERUSER;
--- Perform all operations as user 'admin' --
-SET SESSION AUTHORIZATION admin;
+CREATE ROLE regress_admin SUPERUSER;
+-- Perform all operations as user 'regress_admin' --
+SET SESSION AUTHORIZATION regress_admin;
 -- PGC_BACKEND / DEVELOPER_OPTIONS
 SET ignore_system_indexes = OFF;  -- fail, cannot be set after connection start
 RESET ignore_system_indexes;  -- fail, cannot be set after connection start
@@ -1419,4 +1419,4 @@ ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
 ALTER SYSTEM RESET wal_skip_threshold;  -- ok
 RESET statement_timeout;
 RESET SESSION AUTHORIZATION;
-DROP ROLE admin;
+DROP ROLE regress_admin;
diff --git a/src/test/regress/sql/host_resource_settings.sql b/src/test/regress/sql/host_resource_settings.sql
new file mode 100644
index 0000000000..a1e61e8221
--- /dev/null
+++ b/src/test/regress/sql/host_resource_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure host resource usage
+CREATE ROLE regress_host_resource_admin NOSUPERUSER;
+GRANT pg_manage_host_resource_settings TO regress_host_resource_admin;
+-- Perform all operations as user 'regress_host_resource_admin' --
+SET SESSION AUTHORIZATION regress_host_resource_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_locks_per_transaction;  -- ok
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- ok
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- ok
+ALTER SYSTEM RESET max_worker_processes;  -- ok
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- ok
+ALTER SYSTEM RESET max_files_per_process;  -- ok
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- ok
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- ok
+ALTER SYSTEM SET huge_pages = 'try';  -- ok
+ALTER SYSTEM RESET huge_pages;  -- ok
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- ok
+ALTER SYSTEM RESET max_prepared_transactions;  -- ok
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- ok
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- ok
+ALTER SYSTEM SET shared_buffers = 50;  -- ok
+ALTER SYSTEM RESET shared_buffers;  -- ok
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- ok
+ALTER SYSTEM RESET shared_memory_type;  -- ok
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- ok
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- ok
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- ok
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_work_mem;  -- ok
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_host_resource_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_host_resource_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_host_resource_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_host_resource_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_host_resource_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- ok
+RESET temp_file_limit;  -- ok
+ALTER SYSTEM SET temp_file_limit = 50;  -- ok
+ALTER SYSTEM RESET temp_file_limit;  -- ok
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- ok
+RESET max_stack_depth;  -- ok
+ALTER SYSTEM SET max_stack_depth = 3890;  -- ok
+ALTER SYSTEM RESET max_stack_depth;  -- ok
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_host_resource_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_host_resource_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_host_resource_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_executor_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_host_resource_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_host_resource_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_host_resource_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_host_resource_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_host_resource_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_host_resource_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_host_resource_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_host_resource_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_host_resource_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_host_resource_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_host_resource_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_host_resource_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_host_resource_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_host_resource_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_host_resource_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_host_resource_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_host_resource_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_host_resource_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_host_resource_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_host_resource_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_host_resource_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_host_resource_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_host_resource_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_host_resource_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_host_resource_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_host_resource_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_host_resource_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_host_resource_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_host_resource_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_host_resource_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_host_resource_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_host_resource_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_host_resource_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_host_resource_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_host_resource_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_host_resource_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_host_resource_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_host_resource_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_host_resource_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_host_resource_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_host_resource_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_host_resource_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_host_resource_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_host_resource_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_host_resource_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_host_resource_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_host_resource_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_host_resource_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_host_resource_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_host_resource_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_host_resource_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_host_resource_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_host_resource_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- ok
+ALTER SYSTEM RESET backend_flush_after;  -- ok
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- ok
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers;  -- ok
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- ok
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- ok
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_host_resource_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_host_resource_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- ok
+ALTER SYSTEM RESET hash_mem_multiplier;  -- ok
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- ok
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- ok
+ALTER SYSTEM RESET maintenance_work_mem;  -- ok
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- ok
+ALTER SYSTEM RESET temp_buffers;  -- ok
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- ok
+ALTER SYSTEM RESET work_mem;  -- ok
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_host_resource_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_host_resource_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_host_resource_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_host_resource_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_host_resource_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_host_resource_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_host_resource_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0003-Adding-role-pg_manage_vacuum_settings.patchapplication/octet-stream; name=v6-0003-Adding-role-pg_manage_vacuum_settings.patch; x-unix-mode=0644Download
From 9bbdc1fb2ee35e03baca46d98f3e8ea404310fc8 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 16:19:13 -0700
Subject: [PATCH v6 03/19] Adding role pg_manage_vacuum_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls vacuum behavior or resource usage.
---
 doc/src/sgml/user-manag.sgml                  |   11 +-
 src/backend/utils/misc/guc.c                  |   26 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 src/test/regress/expected/vacuum_settings.out | 1733 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/vacuum_settings.sql      | 1051 ++++++++++
 7 files changed, 2814 insertions(+), 15 deletions(-)
 create mode 100644 src/test/regress/expected/vacuum_settings.out
 create mode 100644 src/test/regress/sql/vacuum_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 77f7d38bd4..90df892f3c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -586,6 +586,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_host_resource_settings</entry>
        <entry>Allow changing settings which control host resource usage.</entry>
       </row>
+      <row>
+       <entry>pg_manage_vacuum_settings</entry>
+       <entry>Allow changing settings which control vacuum behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -630,9 +634,10 @@ DROP ROLE doomed_role;
   </para>
 
   <para>
-  The <literal>pg_manage_host_resource_settings</literal> role is intended to
-  allow administrators to have a trusted, but non-superuser, role to configure
-  memory, cpu, disk and filehandle usage.
+  The <literal>pg_manage_host_resource_settings</literal> and
+  <literal>pg_manage_vacuum_settings</literal> roles are intended to allow
+  administrators to have trusted, but non-superuser, roles to configure the
+  server.
   </para>
 
   <para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index ded8a06c03..6d66644368 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2608,7 +2608,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page found in the buffer cache."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostPageHit,
 		1, 0, 10000,
@@ -2619,7 +2619,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostPageMiss,
 		2, 0, 10000,
@@ -2630,7 +2630,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostPageDirty,
 		20, 0, 10000,
@@ -2641,7 +2641,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost amount available before napping."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&VacuumCostLimit,
 		200, 1, 10000,
@@ -2761,7 +2761,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a table row."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&vacuum_freeze_min_age,
 		50000000, 0, 1000000000,
@@ -2772,7 +2772,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should scan whole table to freeze tuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&vacuum_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2783,7 +2783,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_multixact_freeze_min_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Minimum age at which VACUUM should freeze a MultiXactId in a table row."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&vacuum_multixact_freeze_min_age,
 		5000000, 0, 1000000000,
@@ -2794,7 +2794,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_multixact_freeze_table_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should scan whole table to freeze tuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&vacuum_multixact_freeze_table_age,
 		150000000, 0, 2000000000,
@@ -2815,7 +2815,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&vacuum_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -2825,7 +2825,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_multixact_failsafe_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
 			gettext_noop("Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_VACUUM_SETTINGS
 		},
 		&vacuum_multixact_failsafe_age,
 		1600000000, 0, 2100000000,
@@ -3986,7 +3986,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
 			gettext_noop("Vacuum cost delay in milliseconds."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_VACUUM_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&VacuumCostDelay,
@@ -7609,6 +7609,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_HOST_RESOURCE_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_VACUUM_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_VACUUM_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index daf62c2061..cef9b7f015 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -84,5 +84,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9280', oid_symbol => 'ROLE_PG_MANAGE_VACUUM_SETTINGS',
+  rolname => 'pg_manage_vacuum_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index b1ffc58b6a..1cae7d2935 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -202,6 +202,7 @@ typedef enum
  * privilege bits required to modify a GUC variable
  */
 #define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
+#define GUC_MANAGE_VACUUM_SETTINGS			0x0002
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/vacuum_settings.out b/src/test/regress/expected/vacuum_settings.out
new file mode 100644
index 0000000000..edad3b87ab
--- /dev/null
+++ b/src/test/regress/expected/vacuum_settings.out
@@ -0,0 +1,1733 @@
+-- Non-superuser with privileges to configure vacuum processes
+CREATE ROLE regress_vacuum_admin NOSUPERUSER;
+GRANT pg_manage_vacuum_settings TO regress_vacuum_admin;
+-- Perform all operations as user 'regress_vacuum_admin' --
+SET SESSION AUTHORIZATION regress_vacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+SET log_executor_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_vacuum_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 6ff05dece9..dca1966a1b 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings
+test: admin host_resource_settings vacuum_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/vacuum_settings.sql b/src/test/regress/sql/vacuum_settings.sql
new file mode 100644
index 0000000000..2c6bec3eb0
--- /dev/null
+++ b/src/test/regress/sql/vacuum_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure vacuum processes
+CREATE ROLE regress_vacuum_admin NOSUPERUSER;
+GRANT pg_manage_vacuum_settings TO regress_vacuum_admin;
+-- Perform all operations as user 'regress_vacuum_admin' --
+SET SESSION AUTHORIZATION regress_vacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_vacuum_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_vacuum_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_vacuum_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_vacuum_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_vacuum_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_vacuum_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_vacuum_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_vacuum_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_executor_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_vacuum_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_vacuum_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_vacuum_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_vacuum_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_vacuum_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_vacuum_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_vacuum_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_vacuum_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_vacuum_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_vacuum_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_vacuum_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_vacuum_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_vacuum_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- ok
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- ok
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- ok
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- ok
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- ok
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- ok
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_vacuum_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_vacuum_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_vacuum_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_vacuum_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_vacuum_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_vacuum_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_vacuum_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_vacuum_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_vacuum_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_vacuum_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_vacuum_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_vacuum_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_vacuum_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_vacuum_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_vacuum_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_vacuum_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_vacuum_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_vacuum_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_vacuum_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_vacuum_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_vacuum_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_vacuum_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_vacuum_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_vacuum_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_vacuum_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_vacuum_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_vacuum_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_vacuum_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_vacuum_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_vacuum_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_vacuum_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_vacuum_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_vacuum_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_vacuum_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_vacuum_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_vacuum_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_vacuum_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_vacuum_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_vacuum_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_vacuum_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_vacuum_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_vacuum_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_vacuum_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_vacuum_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_vacuum_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_vacuum_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_vacuum_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_vacuum_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_vacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_delay;  -- ok
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- ok
+ALTER SYSTEM RESET vacuum_cost_limit;  -- ok
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- ok
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- ok
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- ok
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- ok
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_vacuum_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_vacuum_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_vacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_vacuum_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_vacuum_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0004-Adding-role-pg_manage_autovacuum_settings.patchapplication/octet-stream; name=v6-0004-Adding-role-pg_manage_autovacuum_settings.patch; x-unix-mode=0644Download
From cb6b1b239117c76bb24cb8e7ba8f1d49e4aad34f Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 16:23:21 -0700
Subject: [PATCH v6 04/19] Adding role pg_manage_autovacuum_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls autovacuum behavior or resource usage.
---
 doc/src/sgml/user-manag.sgml                  |    9 +-
 src/backend/utils/misc/guc.c                  |   30 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../regress/expected/autovacuum_settings.out  | 1729 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/autovacuum_settings.sql  | 1051 ++++++++++
 7 files changed, 2811 insertions(+), 16 deletions(-)
 create mode 100644 src/test/regress/expected/autovacuum_settings.out
 create mode 100644 src/test/regress/sql/autovacuum_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 90df892f3c..438c4492b8 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -590,6 +590,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_vacuum_settings</entry>
        <entry>Allow changing settings which control vacuum behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_autovacuum_settings</entry>
+       <entry>Allow changing settings which control autovacuum behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -634,8 +638,9 @@ DROP ROLE doomed_role;
   </para>
 
   <para>
-  The <literal>pg_manage_host_resource_settings</literal> and
-  <literal>pg_manage_vacuum_settings</literal> roles are intended to allow
+  The <literal>pg_manage_host_resource_settings</literal>,
+  <literal>pg_manage_vacuum_settings</literal> and
+  <literal>pg_manage_autovacuum_settings</literal> roles are intended to allow
   administrators to have trusted, but non-superuser, roles to configure the
   server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 6d66644368..801fe5b8a7 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1629,7 +1629,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"autovacuum", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Starts the autovacuum subprocess."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_start_daemon,
 		true,
@@ -2652,7 +2652,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_vacuum_cost_limit", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost amount available before napping, for autovacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_cost_limit,
 		-1, -1, 10000,
@@ -3438,7 +3438,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Time to sleep between autovacuum runs."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_AUTOVACUUM_SETTINGS,
 			GUC_UNIT_S
 		},
 		&autovacuum_naptime,
@@ -3449,7 +3449,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple updates or deletes prior to vacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_thresh,
 		50, 0, INT_MAX,
@@ -3459,7 +3459,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_vacuum_insert_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_ins_thresh,
 		1000, -1, INT_MAX,
@@ -3469,7 +3469,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Minimum number of tuple inserts, updates, or deletes prior to analyze."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_anl_thresh,
 		50, 0, INT_MAX,
@@ -3480,7 +3480,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Age at which to autovacuum a table to prevent transaction ID wraparound."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_freeze_max_age,
 
@@ -3496,7 +3496,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_multixact_freeze_max_age", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Multixact age at which to autovacuum a table to prevent multixact wraparound."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_multixact_freeze_max_age,
 		400000000, 10000, 2000000000,
@@ -3507,7 +3507,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
 			gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_max_workers,
 		3, 1, MAX_BACKENDS,
@@ -3998,7 +3998,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_cost_delay", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Vacuum cost delay in milliseconds, for autovacuum."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_AUTOVACUUM_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&autovacuum_vac_cost_delay,
@@ -4010,7 +4010,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_scale,
 		0.2, 0.0, 100.0,
@@ -4021,7 +4021,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_vacuum_insert_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts prior to vacuum as a fraction of reltuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_vac_ins_scale,
 		0.2, 0.0, 100.0,
@@ -4032,7 +4032,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
 			gettext_noop("Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_AUTOVACUUM_SETTINGS
 		},
 		&autovacuum_anl_scale,
 		0.1, 0.0, 100.0,
@@ -7613,6 +7613,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_VACUUM_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_AUTOVACUUM_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_AUTOVACUUM_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index cef9b7f015..588b0954d8 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -89,5 +89,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9281', oid_symbol => 'ROLE_PG_MANAGE_AUTOVACUUM_SETTINGS',
+  rolname => 'pg_manage_autovacuum_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 1cae7d2935..5627b53895 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -203,6 +203,7 @@ typedef enum
  */
 #define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
 #define GUC_MANAGE_VACUUM_SETTINGS			0x0002
+#define GUC_MANAGE_AUTOVACUUM_SETTINGS		0x0004
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/autovacuum_settings.out b/src/test/regress/expected/autovacuum_settings.out
new file mode 100644
index 0000000000..2bab76c523
--- /dev/null
+++ b/src/test/regress/expected/autovacuum_settings.out
@@ -0,0 +1,1729 @@
+-- Non-superuser with privileges to configure autovacuum processes
+CREATE ROLE regress_autovacuum_admin NOSUPERUSER;
+GRANT pg_manage_autovacuum_settings TO regress_autovacuum_admin;
+-- Perform all operations as user 'regress_autovacuum_admin' --
+SET SESSION AUTHORIZATION regress_autovacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+SET log_executor_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_autovacuum_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_autovacuum_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index dca1966a1b..7d67b44081 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/autovacuum_settings.sql b/src/test/regress/sql/autovacuum_settings.sql
new file mode 100644
index 0000000000..6c2d3ff1f3
--- /dev/null
+++ b/src/test/regress/sql/autovacuum_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure autovacuum processes
+CREATE ROLE regress_autovacuum_admin NOSUPERUSER;
+GRANT pg_manage_autovacuum_settings TO regress_autovacuum_admin;
+-- Perform all operations as user 'regress_autovacuum_admin' --
+SET SESSION AUTHORIZATION regress_autovacuum_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- ok
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- ok
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_max_workers;  -- ok
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- ok
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- ok
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- ok
+ALTER SYSTEM RESET autovacuum;  -- ok
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- ok
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- ok
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_naptime;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- ok
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- ok
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET compute_query_id = 'auto';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_executor_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_autovacuum_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_autovacuum_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_autovacuum_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_autovacuum_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_autovacuum_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0005-Adding-role-pg_manage_logging_settings.patchapplication/octet-stream; name=v6-0005-Adding-role-pg_manage_logging_settings.patch; x-unix-mode=0644Download
From 8a3390465cc310a796b56af80b005ce719532b39 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 16:35:44 -0700
Subject: [PATCH v6 05/19] Adding role pg_manage_logging_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls what and when to log.  Note that variables controlling
where to log may not be set by this role unless the user also has
membership in role pg_write_server_files.
---
 doc/src/sgml/user-manag.sgml                  |    9 +-
 src/backend/utils/misc/guc.c                  |  123 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    2 +
 .../regress/expected/logging_settings.out     | 1654 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/logging_settings.sql     | 1064 +++++++++++
 7 files changed, 2798 insertions(+), 61 deletions(-)
 create mode 100644 src/test/regress/expected/logging_settings.out
 create mode 100644 src/test/regress/sql/logging_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 438c4492b8..e898dba880 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -594,6 +594,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_autovacuum_settings</entry>
        <entry>Allow changing settings which control autovacuum behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_logging_settings</entry>
+       <entry>Allow changing settings which control logging behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -639,8 +643,9 @@ DROP ROLE doomed_role;
 
   <para>
   The <literal>pg_manage_host_resource_settings</literal>,
-  <literal>pg_manage_vacuum_settings</literal> and
-  <literal>pg_manage_autovacuum_settings</literal> roles are intended to allow
+  <literal>pg_manage_vacuum_settings</literal>,
+  <literal>pg_manage_autovacuum_settings</literal> and
+  <literal>pg_manage_logging_settings</literal> roles are intended to allow
   administrators to have trusted, but non-superuser, roles to configure the
   server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 801fe5b8a7..f64f05c74c 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1379,7 +1379,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_checkpoints", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs each checkpoint."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_checkpoints,
 		false,
@@ -1389,7 +1389,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_connections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs each successful connection."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_connections,
 		false,
@@ -1399,7 +1399,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_disconnections", PGC_SU_BACKEND, LOGGING_WHAT,
 			gettext_noop("Logs end of a session, including duration."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_disconnections,
 		false,
@@ -1409,7 +1409,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_replication_commands", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs each replication command."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_replication_commands,
 		false,
@@ -1467,7 +1467,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_duration", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs the duration of each completed SQL statement."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_duration,
 		false,
@@ -1477,7 +1477,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_print_parse", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's parse tree."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_print_parse,
 		false,
@@ -1487,7 +1487,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_print_rewritten", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's rewritten parse tree."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_print_rewritten,
 		false,
@@ -1497,7 +1497,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_print_plan", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Logs each query's execution plan."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_print_plan,
 		false,
@@ -1507,7 +1507,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"debug_pretty_print", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Indents parse and plan tree displays."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Debug_pretty_print,
 		true,
@@ -1517,7 +1517,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_parser_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes parser performance statistics to the server log."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_parser_stats,
 		false,
@@ -1527,7 +1527,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_planner_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes planner performance statistics to the server log."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_planner_stats,
 		false,
@@ -1537,7 +1537,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_executor_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes executor performance statistics to the server log."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_executor_stats,
 		false,
@@ -1547,7 +1547,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_statement_stats", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Writes cumulative performance statistics to the server log."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_statement_stats,
 		false,
@@ -1640,7 +1640,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_notify", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generates debugging output for LISTEN and NOTIFY."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_notify,
@@ -1653,7 +1653,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_locks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lock usage."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_locks,
@@ -1664,7 +1664,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_userlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about user lock usage."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_userlocks,
@@ -1675,7 +1675,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_lwlocks", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emits information about lightweight lock usage."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lwlocks,
@@ -1699,7 +1699,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_lock_waits", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Logs long lock waits."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_lock_waits,
 		false,
@@ -1709,7 +1709,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_recovery_conflict_waits", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Logs standby recovery conflict waits."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_recovery_conflict_waits,
 		false,
@@ -1722,7 +1722,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "of the connecting host. If you want them to show the host name you "
 						 "can turn this on, but depending on your host name resolution "
 						 "setup it might impose a non-negligible performance penalty."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_hostname,
 		false,
@@ -1848,7 +1848,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"logging_collector", PGC_POSTMASTER, LOGGING_WHERE,
 			gettext_noop("Start a subprocess to capture stderr output and/or csvlogs into log files."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&Logging_collector,
 		false,
@@ -1858,7 +1858,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"log_truncate_on_rotation", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Truncate existing log files of same name during log rotation."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&Log_truncate_on_rotation,
 		false,
@@ -1870,7 +1870,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_sort", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit information about resource usage in sorting."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_sort,
@@ -1885,7 +1885,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"trace_syncscan", PGC_USERSET, DEVELOPER_OPTIONS,
 			gettext_noop("Generate debugging output for synchronized scanning."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&trace_syncscan,
@@ -1951,7 +1951,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"escape_string_warning", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS,
 			gettext_noop("Warn about backslash escapes in ordinary string literals."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&escape_string_warning,
 		true,
@@ -2090,7 +2090,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Add sequence number to syslog messages to avoid duplicate suppression."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&syslog_sequence_numbers,
 		true,
@@ -2101,7 +2101,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&syslog_split_messages,
 		true,
@@ -2513,7 +2513,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
 						 "start with a 0 (zero).)"),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&Log_file_mode,
 		0600, 0000, 0777,
@@ -2689,7 +2689,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_oidmin", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the minimum OID of tables for tracking locks."),
 			gettext_noop("Is used to avoid output on system tables."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_oidmin,
@@ -2700,7 +2700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"trace_lock_table", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Sets the OID of the table with unconditionally lock tracing."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&Trace_lock_table,
@@ -2967,7 +2967,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Write a message to the server log if checkpoints "
 						 "caused by the filling of checkpoint segment files happens more "
 						 "frequently than this number of seconds. Zero turns off the warning."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_S
 		},
 		&CheckPointWarning,
@@ -3129,7 +3129,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "a sample of statements will be logged."
 						 " Sampling is determined by log_statement_sample_rate."),
 			gettext_noop("Zero logs a sample of all queries. -1 turns this feature off."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_sample,
@@ -3142,7 +3142,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "all statements will be logged."),
 			gettext_noop("Zero prints all queries. -1 turns this feature off."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&log_min_duration_statement,
@@ -3155,7 +3155,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum execution time above which "
 						 "autovacuum actions will be logged."),
 			gettext_noop("Zero prints all actions. -1 turns autovacuum logging off."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&Log_autovacuum_min_duration,
@@ -3167,7 +3167,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("When logging statements, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length,
@@ -3179,7 +3179,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_parameter_max_length_on_error", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("When reporting an error, limit logged parameter values to first N bytes."),
 			gettext_noop("-1 to print values in full."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_BYTE
 		},
 		&log_parameter_max_length_on_error,
@@ -3315,7 +3315,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_age", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N minutes."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES,
 			GUC_UNIT_MIN
 		},
 		&Log_RotationAge,
@@ -3327,7 +3327,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_rotation_size", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Automatic log file rotation will occur after N kilobytes."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES,
 			GUC_UNIT_KB
 		},
 		&Log_RotationSize,
@@ -3688,7 +3688,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"log_temp_files", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Log the use of temporary files larger than this number of kilobytes."),
 			gettext_noop("Zero logs all files. The default is -1 (turning this feature off)."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&log_temp_files,
@@ -4054,7 +4054,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"log_statement_sample_rate", PGC_SUSET, LOGGING_WHEN,
 			gettext_noop("Fraction of statements exceeding log_min_duration_sample to be logged."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (always log)."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_statement_sample_rate,
 		1.0, 0.0, 1.0,
@@ -4066,7 +4066,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the fraction of transactions from which to log all statements."),
 			gettext_noop("Use a value between 0.0 (never log) and 1.0 (log all "
 						 "statements for all transactions)."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_xact_sample_rate,
 		0.0, 0.0, 1.0,
@@ -4237,7 +4237,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_line_prefix", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Controls information prefixed to each log line."),
 			gettext_noop("If blank, no prefix is used."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_line_prefix,
 		"%m [%p] ",
@@ -4248,7 +4248,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_timezone", PGC_SIGHUP, LOGGING_WHAT,
 			gettext_noop("Sets the time zone to use in log messages."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_timezone_string,
 		"GMT",
@@ -4516,7 +4516,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Valid values are combinations of \"stderr\", "
 						 "\"syslog\", \"csvlog\", and \"eventlog\", "
 						 "depending on the platform."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES,
 			GUC_LIST_INPUT
 		},
 		&Log_destination_string,
@@ -4528,7 +4528,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the destination directory for log files."),
 			gettext_noop("Can be specified as relative to the data directory "
 						 "or as absolute path."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_directory,
@@ -4539,7 +4539,7 @@ static struct config_string ConfigureNamesString[] =
 		{"log_filename", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the file name pattern for log files."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES,
 			GUC_SUPERUSER_ONLY
 		},
 		&Log_filename,
@@ -4552,7 +4552,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the program name used to identify PostgreSQL "
 						 "messages in syslog."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&syslog_ident_str,
 		"postgres",
@@ -4564,7 +4564,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the application name used to identify "
 						 "PostgreSQL messages in the event log."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&event_source,
 		DEFAULT_EVENT_SOURCE,
@@ -4855,7 +4855,7 @@ static struct config_string ConfigureNamesString[] =
 		{"application_name", PGC_USERSET, LOGGING_WHAT,
 			gettext_noop("Sets the application name to be reported in statistics and logs."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_LOGGING_SETTINGS,
 			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
 		},
 		&application_name,
@@ -4902,7 +4902,7 @@ static struct config_string ConfigureNamesString[] =
 		{"backtrace_functions", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Log backtrace for errors in these functions."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&backtrace_functions,
 		"",
@@ -5027,7 +5027,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_error_verbosity", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the verbosity of logged messages."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&Log_error_verbosity,
 		PGERROR_DEFAULT, log_error_verbosity_options,
@@ -5039,7 +5039,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Sets the message levels that are logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
 						 " the level, the fewer messages are sent."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_min_messages,
 		WARNING, server_message_level_options,
@@ -5051,7 +5051,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Causes all statements generating error at or above this level to be logged."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
 						 " the level, the fewer messages are sent."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_min_error_statement,
 		ERROR, server_message_level_options,
@@ -5062,7 +5062,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"log_statement", PGC_SUSET, LOGGING_WHAT,
 			gettext_noop("Sets the type of statements logged."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&log_statement,
 		LOGSTMT_NONE, log_statement_options,
@@ -5073,7 +5073,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"syslog_facility", PGC_SIGHUP, LOGGING_WHERE,
 			gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&syslog_facility,
 #ifdef HAVE_SYSLOG
@@ -5134,7 +5134,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Enables logging of recovery-related debugging information."),
 			gettext_noop("Each level includes all the levels that follow it. The later"
 						 " the level, the fewer messages are sent."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_LOGGING_SETTINGS
 		},
 		&trace_recovery_messages,
 
@@ -5175,8 +5175,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			GUC_SUPERUSER_ONLY
 		},
 		&wal_level,
-		WAL_LEVEL_REPLICA, wal_level_options,
-		NULL, NULL, NULL
+		WAL_LEVEL_REPLICA, wal_level_options, NULL, NULL, NULL
 	},
 
 	{
@@ -7617,6 +7616,14 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_AUTOVACUUM_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_LOGGING_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_LOGGING_SETTINGS))
+		return false;
+
+	if ((privileges & GUC_WRITE_SERVER_FILES) &&
+		! has_privs_of_role(roleid, ROLE_PG_WRITE_SERVER_FILES))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 588b0954d8..41d119f7b2 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -94,5 +94,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9282', oid_symbol => 'ROLE_PG_MANAGE_LOGGING_SETTINGS',
+  rolname => 'pg_manage_logging_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 5627b53895..c80c7d8ec5 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -204,6 +204,8 @@ typedef enum
 #define GUC_MANAGE_HOST_RESOURCE_SETTINGS	0x0001
 #define GUC_MANAGE_VACUUM_SETTINGS			0x0002
 #define GUC_MANAGE_AUTOVACUUM_SETTINGS		0x0004
+#define GUC_MANAGE_LOGGING_SETTINGS			0x0008
+#define GUC_WRITE_SERVER_FILES				0x0010
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/logging_settings.out b/src/test/regress/expected/logging_settings.out
new file mode 100644
index 0000000000..ff8611834b
--- /dev/null
+++ b/src/test/regress/expected/logging_settings.out
@@ -0,0 +1,1654 @@
+-- Non-superuser with privileges to configure what and when to log
+CREATE ROLE regress_logging_admin NOSUPERUSER;
+GRANT pg_manage_logging_settings TO regress_logging_admin;
+-- Perform all operations as user 'regress_logging_admin' --
+SET SESSION AUTHORIZATION regress_logging_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET allow_system_table_mods = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET debug_discard_caches = 2;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+SET compute_query_id = 'auto';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+-- Grant pg_write_server_files to regress_logging_admin to unlock remaining logging settings
+RESET SESSION AUTHORIZATION;
+GRANT pg_write_server_files TO regress_logging_admin;
+SET SESSION AUTHORIZATION regress_logging_admin;
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_logging_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 7d67b44081..4040d845e4 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/logging_settings.sql b/src/test/regress/sql/logging_settings.sql
new file mode 100644
index 0000000000..23e1edc8c2
--- /dev/null
+++ b/src/test/regress/sql/logging_settings.sql
@@ -0,0 +1,1064 @@
+-- Non-superuser with privileges to configure what and when to log
+CREATE ROLE regress_logging_admin NOSUPERUSER;
+GRANT pg_manage_logging_settings TO regress_logging_admin;
+-- Perform all operations as user 'regress_logging_admin' --
+SET SESSION AUTHORIZATION regress_logging_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- ok
+ALTER SYSTEM RESET trace_recovery_messages;  -- ok
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- ok
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- ok
+ALTER SYSTEM SET log_checkpoints = OFF;  -- ok
+ALTER SYSTEM RESET log_checkpoints;  -- ok
+ALTER SYSTEM SET log_hostname = OFF;  -- ok
+ALTER SYSTEM RESET log_hostname;  -- ok
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- ok
+ALTER SYSTEM RESET log_line_prefix;  -- ok
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- ok
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET log_timezone;  -- ok
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_warning;  -- ok
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_logging_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_logging_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_logging_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+RESET backtrace_functions;  -- ok
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- ok
+ALTER SYSTEM RESET backtrace_functions;  -- ok
+SET allow_system_table_mods = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_logging_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_logging_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_logging_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_logging_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_logging_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_logging_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_logging_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- ok
+RESET log_duration;  -- ok
+ALTER SYSTEM SET log_duration = OFF;  -- ok
+ALTER SYSTEM RESET log_duration;  -- ok
+SET log_error_verbosity = 'default';  -- ok
+RESET log_error_verbosity;  -- ok
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- ok
+ALTER SYSTEM RESET log_error_verbosity;  -- ok
+SET log_lock_waits = OFF;  -- ok
+RESET log_lock_waits;  -- ok
+ALTER SYSTEM SET log_lock_waits = OFF;  -- ok
+ALTER SYSTEM RESET log_lock_waits;  -- ok
+SET log_parameter_max_length = 50;  -- ok
+RESET log_parameter_max_length;  -- ok
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length;  -- ok
+SET log_replication_commands = OFF;  -- ok
+RESET log_replication_commands;  -- ok
+ALTER SYSTEM SET log_replication_commands = OFF;  -- ok
+ALTER SYSTEM RESET log_replication_commands;  -- ok
+SET log_statement = 'none';  -- ok
+RESET log_statement;  -- ok
+ALTER SYSTEM SET log_statement = 'none';  -- ok
+ALTER SYSTEM RESET log_statement;  -- ok
+SET log_temp_files = 50;  -- ok
+RESET log_temp_files;  -- ok
+ALTER SYSTEM SET log_temp_files = 50;  -- ok
+ALTER SYSTEM RESET log_temp_files;  -- ok
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- ok
+RESET log_min_duration_sample;  -- ok
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_sample;  -- ok
+SET log_min_duration_statement = 50;  -- ok
+RESET log_min_duration_statement;  -- ok
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- ok
+ALTER SYSTEM RESET log_min_duration_statement;  -- ok
+SET log_min_error_statement = 'error';  -- ok
+RESET log_min_error_statement;  -- ok
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- ok
+ALTER SYSTEM RESET log_min_error_statement;  -- ok
+SET log_min_messages = 'warning';  -- ok
+RESET log_min_messages;  -- ok
+ALTER SYSTEM SET log_min_messages = 'warning';  -- ok
+ALTER SYSTEM RESET log_min_messages;  -- ok
+SET log_statement_sample_rate = 0;  -- ok
+RESET log_statement_sample_rate;  -- ok
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_statement_sample_rate;  -- ok
+SET log_transaction_sample_rate = 0;  -- ok
+RESET log_transaction_sample_rate;  -- ok
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- ok
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- ok
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_logging_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_logging_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_logging_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_logging_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_logging_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- ok
+RESET log_executor_stats;  -- ok
+ALTER SYSTEM SET log_executor_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_executor_stats;  -- ok
+SET log_parser_stats = OFF;  -- ok
+RESET log_parser_stats;  -- ok
+ALTER SYSTEM SET log_parser_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_parser_stats;  -- ok
+SET log_planner_stats = OFF;  -- ok
+RESET log_planner_stats;  -- ok
+ALTER SYSTEM SET log_planner_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_planner_stats;  -- ok
+SET log_statement_stats = OFF;  -- ok
+RESET log_statement_stats;  -- ok
+ALTER SYSTEM SET log_statement_stats = OFF;  -- ok
+ALTER SYSTEM RESET log_statement_stats;  -- ok
+SET compute_query_id = 'auto';  -- fail, regress_logging_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_logging_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_logging_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_logging_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_logging_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_logging_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- ok
+ALTER SYSTEM RESET log_connections;  -- ok
+ALTER SYSTEM SET log_disconnections = OFF;  -- ok
+ALTER SYSTEM RESET log_disconnections;  -- ok
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_logging_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_logging_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_logging_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_logging_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_logging_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_logging_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_logging_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_logging_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_logging_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_logging_admin has insufficient privileges
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_logging_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_logging_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_logging_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_logging_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_logging_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_logging_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_logging_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_logging_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_logging_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_logging_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_logging_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_logging_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_logging_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_logging_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_logging_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_logging_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- ok
+ALTER SYSTEM RESET escape_string_warning;  -- ok
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_logging_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_logging_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_logging_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_logging_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_logging_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_logging_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_logging_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- ok
+ALTER SYSTEM RESET trace_notify;  -- ok
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- ok
+ALTER SYSTEM RESET trace_sort;  -- ok
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_logging_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_logging_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- ok
+ALTER SYSTEM RESET application_name;  -- ok
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- ok
+ALTER SYSTEM RESET debug_pretty_print;  -- ok
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_parse;  -- ok
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_plan;  -- ok
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- ok
+ALTER SYSTEM RESET debug_print_rewritten;  -- ok
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- ok
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- ok
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_logging_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_logging_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_logging_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_logging_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_logging_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_logging_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_logging_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_logging_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_logging_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_logging_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_logging_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_logging_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_logging_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_logging_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_logging_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_logging_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_logging_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_logging_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_logging_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_logging_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_logging_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_logging_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_logging_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_logging_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_logging_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_logging_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_logging_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_logging_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_logging_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_logging_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_logging_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_logging_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_logging_admin has insufficient privileges
+RESET statement_timeout;
+
+-- Grant pg_write_server_files to regress_logging_admin to unlock remaining logging settings
+RESET SESSION AUTHORIZATION;
+GRANT pg_write_server_files TO regress_logging_admin;
+
+SET SESSION AUTHORIZATION regress_logging_admin;
+
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET logging_collector = OFF;  -- ok
+ALTER SYSTEM RESET logging_collector;  -- ok
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- ok
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- ok
+
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_logging_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0006-Adding-role-pg_manage_replication_settings.patchapplication/octet-stream; name=v6-0006-Adding-role-pg_manage_replication_settings.patch; x-unix-mode=0644Download
From a1c0a73f00203628eff0aa4cea0919182b589e28 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 16:44:29 -0700
Subject: [PATCH v6 06/19] Adding role pg_manage_replication_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls replication behavior or resource usage.
---
 doc/src/sgml/user-manag.sgml                  |    9 +-
 src/backend/utils/misc/guc.c                  |   48 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../regress/expected/replication_settings.out | 1711 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/replication_settings.sql | 1051 ++++++++++
 7 files changed, 2802 insertions(+), 25 deletions(-)
 create mode 100644 src/test/regress/expected/replication_settings.out
 create mode 100644 src/test/regress/sql/replication_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index e898dba880..a982fb37b0 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -598,6 +598,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_logging_settings</entry>
        <entry>Allow changing settings which control logging behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_replication_settings</entry>
+       <entry>Allow changing settings which control replication behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -644,8 +648,9 @@ DROP ROLE doomed_role;
   <para>
   The <literal>pg_manage_host_resource_settings</literal>,
   <literal>pg_manage_vacuum_settings</literal>,
-  <literal>pg_manage_autovacuum_settings</literal> and
-  <literal>pg_manage_logging_settings</literal> roles are intended to allow
+  <literal>pg_manage_autovacuum_settings</literal>,
+  <literal>pg_manage_logging_settings</literal> and
+  <literal>pg_manage_replication_settings</literal> roles are intended to allow
   administrators to have trusted, but non-superuser, roles to configure the
   server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index f64f05c74c..2f23a73147 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1227,7 +1227,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"track_commit_timestamp", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Collects transaction commit time."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&track_commit_timestamp,
 		false,
@@ -1996,7 +1996,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"hot_standby", PGC_POSTMASTER, REPLICATION_STANDBY,
 			gettext_noop("Allows connections and queries during recovery."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&EnableHotStandby,
 		true,
@@ -2007,7 +2007,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"hot_standby_feedback", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Allows feedback from a hot standby to the primary that will avoid query conflicts."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&hot_standby_feedback,
 		false,
@@ -2219,7 +2219,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_receiver_create_temp_slot", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&wal_receiver_create_temp_slot,
 		false,
@@ -2359,7 +2359,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_archive_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&max_standby_archive_delay,
@@ -2371,7 +2371,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_standby_streaming_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&max_standby_streaming_delay,
@@ -2383,7 +2383,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"recovery_min_apply_delay", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the minimum delay for applying changes during recovery."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&recovery_min_apply_delay,
@@ -2395,7 +2395,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_status_interval", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum interval between WAL receiver status reports to the sending server."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_S
 		},
 		&wal_receiver_status_interval,
@@ -2407,7 +2407,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_receiver_timeout", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the maximum wait time to receive data from the sending server."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&wal_receiver_timeout,
@@ -2805,7 +2805,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"vacuum_defer_cleanup_age", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&vacuum_defer_cleanup_age,
 		0, 0, 1000000,			/* see ComputeXidHorizons */
@@ -2914,7 +2914,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_keep_size", PGC_SIGHUP, REPLICATION_SENDING,
 			gettext_noop("Sets the size of WAL files held for standby servers."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&wal_keep_size_mb,
@@ -3039,7 +3039,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_wal_senders", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously running WAL sender processes."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&max_wal_senders,
 		10, 0, MAX_BACKENDS,
@@ -3051,7 +3051,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_replication_slots", PGC_POSTMASTER, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum number of simultaneously defined replication slots."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&max_replication_slots,
 		10, 0, MAX_BACKENDS /* XXX? */ ,
@@ -3064,7 +3064,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Replication slots will be marked as failed, and segments released "
 						 "for deletion or recycling, if this much space is occupied by WAL "
 						 "on disk."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&max_slot_wal_keep_size_mb,
@@ -3076,7 +3076,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_sender_timeout", PGC_USERSET, REPLICATION_SENDING,
 			gettext_noop("Sets the maximum time to wait for WAL replication."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&wal_sender_timeout,
@@ -3291,7 +3291,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of logical replication worker processes."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&max_logical_replication_workers,
 		4, 0, MAX_BACKENDS,
@@ -3304,7 +3304,7 @@ static struct config_int ConfigureNamesInt[] =
 			REPLICATION_SUBSCRIBERS,
 			gettext_noop("Maximum number of table synchronization workers per subscription."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&max_sync_workers_per_subscription,
 		2, 0, MAX_BACKENDS,
@@ -3412,7 +3412,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the time to wait before retrying to retrieve WAL "
 						 "after a failed attempt."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&wal_retrieve_retry_interval,
@@ -4192,7 +4192,7 @@ static struct config_string ConfigureNamesString[] =
 		{"promote_trigger_file", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Specifies a file name whose presence ends recovery in the standby."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&PromoteTriggerFile,
 		"",
@@ -4203,7 +4203,7 @@ static struct config_string ConfigureNamesString[] =
 		{"primary_conninfo", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the connection string to be used to connect to the sending server."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&PrimaryConnInfo,
 		"",
@@ -4214,7 +4214,7 @@ static struct config_string ConfigureNamesString[] =
 		{"primary_slot_name", PGC_SIGHUP, REPLICATION_STANDBY,
 			gettext_noop("Sets the name of the replication slot to use on the sending server."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_REPLICATION_SETTINGS
 		},
 		&PrimarySlotName,
 		"",
@@ -4780,7 +4780,7 @@ static struct config_string ConfigureNamesString[] =
 		{"synchronous_standby_names", PGC_SIGHUP, REPLICATION_PRIMARY,
 			gettext_noop("Number of synchronous standbys and list of names of potential synchronous ones."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_REPLICATION_SETTINGS,
 			GUC_LIST_INPUT
 		},
 		&SyncRepStandbyNames,
@@ -7624,6 +7624,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_WRITE_SERVER_FILES))
 		return false;
 
+	if ((privileges & GUC_MANAGE_REPLICATION_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_REPLICATION_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 41d119f7b2..b36c81bf95 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -99,5 +99,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9283', oid_symbol => 'ROLE_PG_MANAGE_REPLICATION_SETTINGS',
+  rolname => 'pg_manage_replication_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index c80c7d8ec5..fc31feb74d 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -206,6 +206,7 @@ typedef enum
 #define GUC_MANAGE_AUTOVACUUM_SETTINGS		0x0004
 #define GUC_MANAGE_LOGGING_SETTINGS			0x0008
 #define GUC_WRITE_SERVER_FILES				0x0010
+#define GUC_MANAGE_REPLICATION_SETTINGS		0x0020
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/replication_settings.out b/src/test/regress/expected/replication_settings.out
new file mode 100644
index 0000000000..03038ea537
--- /dev/null
+++ b/src/test/regress/expected/replication_settings.out
@@ -0,0 +1,1711 @@
+-- Non-superuser with privileges to configure replication settings
+CREATE ROLE regress_replication_admin NOSUPERUSER;
+GRANT pg_manage_replication_settings TO regress_replication_admin;
+-- Perform all operations as user 'regress_replication_admin' --
+SET SESSION AUTHORIZATION regress_replication_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+SET compute_query_id = 'auto';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_replication_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 4040d845e4..4a6f8404c3 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/replication_settings.sql b/src/test/regress/sql/replication_settings.sql
new file mode 100644
index 0000000000..a231bbd368
--- /dev/null
+++ b/src/test/regress/sql/replication_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure replication settings
+CREATE ROLE regress_replication_admin NOSUPERUSER;
+GRANT pg_manage_replication_settings TO regress_replication_admin;
+-- Perform all operations as user 'regress_replication_admin' --
+SET SESSION AUTHORIZATION regress_replication_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- ok
+ALTER SYSTEM RESET max_replication_slots;  -- ok
+ALTER SYSTEM SET max_wal_senders = 50;  -- ok
+ALTER SYSTEM RESET max_wal_senders;  -- ok
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- ok
+ALTER SYSTEM RESET track_commit_timestamp;  -- ok
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby;  -- ok
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- ok
+ALTER SYSTEM RESET max_logical_replication_workers;  -- ok
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- ok
+ALTER SYSTEM RESET synchronous_standby_names;  -- ok
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- ok
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- ok
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- ok
+ALTER SYSTEM SET wal_keep_size = 50;  -- ok
+ALTER SYSTEM RESET wal_keep_size;  -- ok
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- ok
+ALTER SYSTEM RESET hot_standby_feedback;  -- ok
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_archive_delay;  -- ok
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- ok
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- ok
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- ok
+ALTER SYSTEM RESET primary_conninfo;  -- ok
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- ok
+ALTER SYSTEM RESET primary_slot_name;  -- ok
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- ok
+ALTER SYSTEM RESET promote_trigger_file;  -- ok
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- ok
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- ok
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- ok
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- ok
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- ok
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_receiver_timeout;  -- ok
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- ok
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- ok
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- ok
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- ok
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_replication_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_replication_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_replication_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_replication_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_replication_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_replication_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_replication_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_replication_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_replication_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_replication_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_replication_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_replication_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_replication_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_replication_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_replication_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_replication_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_replication_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_replication_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_replication_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_replication_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_replication_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_replication_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_replication_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_replication_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_replication_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_replication_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_replication_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_replication_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_replication_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_replication_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_replication_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_replication_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_replication_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_replication_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_replication_admin has insufficient privileges
+SET compute_query_id = 'auto';  -- fail, regress_replication_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_replication_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_replication_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_replication_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_replication_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_replication_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_replication_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_replication_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_replication_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_replication_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_replication_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_replication_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_replication_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_replication_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_replication_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_replication_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_replication_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_replication_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_replication_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_replication_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_replication_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_replication_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_replication_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_replication_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_replication_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_replication_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_replication_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_replication_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_replication_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_replication_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_replication_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_replication_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_replication_admin has insufficient privileges
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_replication_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_replication_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_replication_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_replication_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_replication_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_replication_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_replication_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_replication_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_replication_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_replication_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_replication_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_replication_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_replication_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_replication_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_replication_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_replication_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_replication_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_replication_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_replication_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_replication_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_replication_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_replication_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_replication_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_replication_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_replication_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_replication_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_replication_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_replication_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_replication_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_replication_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_replication_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_replication_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_replication_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- ok
+ALTER SYSTEM RESET wal_sender_timeout;  -- ok
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_replication_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_replication_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_replication_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_replication_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_replication_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_replication_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_replication_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_replication_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_replication_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_replication_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_replication_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_replication_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_replication_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_replication_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_replication_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_replication_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_replication_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0007-Adding-role-pg_manage_connection_settings.patchapplication/octet-stream; name=v6-0007-Adding-role-pg_manage_connection_settings.patch; x-unix-mode=0644Download
From b72fd14f4227b0260a5bb4d84ad8591badeb98c9 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 16:48:03 -0700
Subject: [PATCH v6 07/19] Adding role pg_manage_connection_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls connection or authentication behavior or resource usage.
---
 doc/src/sgml/user-manag.sgml                  |    9 +-
 src/backend/utils/misc/guc.c                  |   72 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../regress/expected/connection_settings.out  | 1693 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/connection_settings.sql  | 1051 ++++++++++
 7 files changed, 2796 insertions(+), 37 deletions(-)
 create mode 100644 src/test/regress/expected/connection_settings.out
 create mode 100644 src/test/regress/sql/connection_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index a982fb37b0..4686da132b 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -602,6 +602,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_replication_settings</entry>
        <entry>Allow changing settings which control replication behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_connection_settings</entry>
+       <entry>Allow changing settings which control connections and authentication.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -649,8 +653,9 @@ DROP ROLE doomed_role;
   The <literal>pg_manage_host_resource_settings</literal>,
   <literal>pg_manage_vacuum_settings</literal>,
   <literal>pg_manage_autovacuum_settings</literal>,
-  <literal>pg_manage_logging_settings</literal> and
-  <literal>pg_manage_replication_settings</literal> roles are intended to allow
+  <literal>pg_manage_logging_settings</literal>,
+  <literal>pg_manage_replication_settings</literal> and
+  <literal>pg_manage_connection_settings</literal> roles are intended to allow
   administrators to have trusted, but non-superuser, roles to configure the
   server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 2f23a73147..56b19a9018 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1217,7 +1217,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"bonjour", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Enables advertising the server via Bonjour."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&enable_bonjour,
 		false,
@@ -1237,7 +1237,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"ssl", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Enables SSL connections."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&EnableSSL,
 		false,
@@ -1247,7 +1247,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"ssl_passphrase_command_supports_reload", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Also use ssl_passphrase_command during server reload."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_passphrase_command_supports_reload,
 		false,
@@ -1257,7 +1257,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"ssl_prefer_server_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Give priority to server ciphersuite order."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&SSLPreferServerCiphers,
 		true,
@@ -1746,7 +1746,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"db_user_namespace", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Enables per-database user names."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&Db_user_namespace,
 		false,
@@ -1940,7 +1940,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"krb_caseins_users", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&pg_krb_caseins_users,
 		false,
@@ -2419,7 +2419,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the maximum number of concurrent connections."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&MaxConnections,
 		100, 1, MAX_BACKENDS,
@@ -2431,7 +2431,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"superuser_reserved_connections", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the number of connection slots reserved for superusers."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ReservedBackends,
 		3, 0, MAX_BACKENDS,
@@ -2482,7 +2482,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"port", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the TCP port the server listens on."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&PostPortNumber,
 		DEF_PGPORT, 1, 65535,
@@ -2498,7 +2498,7 @@ static struct config_int ConfigureNamesInt[] =
 						 "accepted by the chmod and umask system calls. "
 						 "(To use the customary octal format the number must "
 						 "start with a 0 (zero).)"),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&Unix_socket_permissions,
 		0777, 0000, 0777,
@@ -2889,7 +2889,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"authentication_timeout", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the maximum allowed time to complete client authentication."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_UNIT_S
 		},
 		&AuthenticationTimeout,
@@ -3577,7 +3577,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_idle", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between issuing TCP keepalives."),
 			gettext_noop("A value of 0 uses the system default."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_idle,
@@ -3589,7 +3589,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_keepalives_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Time between TCP keepalive retransmits."),
 			gettext_noop("A value of 0 uses the system default."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_UNIT_S
 		},
 		&tcp_keepalives_interval,
@@ -3601,7 +3601,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"ssl_renegotiation_limit", PGC_USERSET, CONN_AUTH_SSL,
 			gettext_noop("SSL renegotiation is no longer supported; this can only be 0."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE,
 		},
 		&ssl_renegotiation_limit,
@@ -3615,7 +3615,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("This controls the number of consecutive keepalive retransmits that can be "
 						 "lost before a connection is considered dead. A value of 0 uses the "
 						 "system default."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&tcp_keepalives_count,
 		0, 0, INT_MAX,
@@ -3724,7 +3724,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"tcp_user_timeout", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("TCP user timeout."),
 			gettext_noop("A value of 0 uses the system default."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&tcp_user_timeout,
@@ -3772,7 +3772,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"client_connection_check_interval", PGC_USERSET, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the time interval between checks for disconnection while running queries."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&client_connection_check_interval,
@@ -4322,7 +4322,7 @@ static struct config_string ConfigureNamesString[] =
 		{"krb_server_keyfile", PGC_SIGHUP, CONN_AUTH_AUTH,
 			gettext_noop("Sets the location of the Kerberos server key file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&pg_krb_server_keyfile,
 		PG_KRB_SRVTAB,
@@ -4333,7 +4333,7 @@ static struct config_string ConfigureNamesString[] =
 		{"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the Bonjour service name."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&bonjour_name,
 		"",
@@ -4598,7 +4598,7 @@ static struct config_string ConfigureNamesString[] =
 			gettext_noop("Sets the owning group of the Unix-domain socket."),
 			gettext_noop("The owning user of the socket is always the user "
 						 "that starts the server."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&Unix_socket_group,
 		"",
@@ -4609,7 +4609,7 @@ static struct config_string ConfigureNamesString[] =
 		{"unix_socket_directories", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the directories where Unix-domain sockets will be created."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_LIST_INPUT | GUC_LIST_QUOTE | GUC_SUPERUSER_ONLY
 		},
 		&Unix_socket_directories,
@@ -4625,7 +4625,7 @@ static struct config_string ConfigureNamesString[] =
 		{"listen_addresses", PGC_POSTMASTER, CONN_AUTH_SETTINGS,
 			gettext_noop("Sets the host name or IP address(es) to listen to."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_CONNECTION_SETTINGS,
 			GUC_LIST_INPUT
 		},
 		&ListenAddresses,
@@ -4714,7 +4714,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_cert_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server certificate file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_cert_file,
 		"server.crt",
@@ -4725,7 +4725,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_key_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL server private key file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_key_file,
 		"server.key",
@@ -4736,7 +4736,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ca_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate authority file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_ca_file,
 		"",
@@ -4747,7 +4747,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_crl_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_crl_file,
 		"",
@@ -4758,7 +4758,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL certificate revocation list directory."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_crl_dir,
 		"",
@@ -4803,7 +4803,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ciphers", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the list of allowed SSL ciphers."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&SSLCipherSuites,
 #ifdef USE_OPENSSL
@@ -4818,7 +4818,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_ecdh_curve", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the curve to use for ECDH."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&SSLECDHCurve,
 #ifdef USE_SSL
@@ -4833,7 +4833,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_dh_params_file", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Location of the SSL DH parameters file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_dh_params_file,
 		"",
@@ -4844,7 +4844,7 @@ static struct config_string ConfigureNamesString[] =
 		{"ssl_passphrase_command", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Command to obtain passphrases for SSL."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_passphrase_command,
 		"",
@@ -5261,7 +5261,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"password_encryption", PGC_USERSET, CONN_AUTH_AUTH,
 			gettext_noop("Chooses the algorithm for encrypting passwords."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&Password_encryption,
 		PASSWORD_TYPE_SCRAM_SHA_256, password_encryption_options,
@@ -5286,7 +5286,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_min_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the minimum SSL/TLS protocol version to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_min_protocol_version,
 		PG_TLS1_2_VERSION,
@@ -5298,7 +5298,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"ssl_max_protocol_version", PGC_SIGHUP, CONN_AUTH_SSL,
 			gettext_noop("Sets the maximum SSL/TLS protocol version to use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_CONNECTION_SETTINGS
 		},
 		&ssl_max_protocol_version,
 		PG_TLS_ANY,
@@ -7628,6 +7628,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_REPLICATION_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_CONNECTION_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_CONNECTION_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index b36c81bf95..1885823710 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -104,5 +104,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9284', oid_symbol => 'ROLE_PG_MANAGE_CONNECTION_SETTINGS',
+  rolname => 'pg_manage_connection_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index fc31feb74d..41d664da47 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -207,6 +207,7 @@ typedef enum
 #define GUC_MANAGE_LOGGING_SETTINGS			0x0008
 #define GUC_WRITE_SERVER_FILES				0x0010
 #define GUC_MANAGE_REPLICATION_SETTINGS		0x0020
+#define GUC_MANAGE_CONNECTION_SETTINGS		0x0040
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/connection_settings.out b/src/test/regress/expected/connection_settings.out
new file mode 100644
index 0000000000..fa6f0bb2ab
--- /dev/null
+++ b/src/test/regress/expected/connection_settings.out
@@ -0,0 +1,1693 @@
+-- Non-superuser with privileges to configure connections and authentication
+CREATE ROLE regress_connection_admin NOSUPERUSER;
+GRANT pg_manage_connection_settings TO regress_connection_admin;
+-- Perform all operations as user 'regress_connection_admin' --
+SET SESSION AUTHORIZATION regress_connection_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+SET compute_query_id = 'auto';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_connection_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 4a6f8404c3..a43ebc1429 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/connection_settings.sql b/src/test/regress/sql/connection_settings.sql
new file mode 100644
index 0000000000..5f4f22d640
--- /dev/null
+++ b/src/test/regress/sql/connection_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure connections and authentication
+CREATE ROLE regress_connection_admin NOSUPERUSER;
+GRANT pg_manage_connection_settings TO regress_connection_admin;
+-- Perform all operations as user 'regress_connection_admin' --
+SET SESSION AUTHORIZATION regress_connection_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- ok
+ALTER SYSTEM RESET bonjour;  -- ok
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- ok
+ALTER SYSTEM RESET bonjour_name;  -- ok
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- ok
+ALTER SYSTEM RESET listen_addresses;  -- ok
+ALTER SYSTEM SET max_connections = 50;  -- ok
+ALTER SYSTEM RESET max_connections;  -- ok
+ALTER SYSTEM SET port = 50;  -- ok
+ALTER SYSTEM RESET port;  -- ok
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- ok
+ALTER SYSTEM RESET superuser_reserved_connections;  -- ok
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- ok
+ALTER SYSTEM RESET unix_socket_directories;  -- ok
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- ok
+ALTER SYSTEM RESET unix_socket_group;  -- ok
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- ok
+ALTER SYSTEM RESET unix_socket_permissions;  -- ok
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- ok
+ALTER SYSTEM RESET authentication_timeout;  -- ok
+ALTER SYSTEM SET db_user_namespace = OFF;  -- ok
+ALTER SYSTEM RESET db_user_namespace;  -- ok
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- ok
+ALTER SYSTEM RESET krb_caseins_users;  -- ok
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- ok
+ALTER SYSTEM RESET krb_server_keyfile;  -- ok
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- ok
+ALTER SYSTEM RESET ssl_ca_file;  -- ok
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- ok
+ALTER SYSTEM RESET ssl_cert_file;  -- ok
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ciphers;  -- ok
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- ok
+ALTER SYSTEM RESET ssl_crl_dir;  -- ok
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- ok
+ALTER SYSTEM RESET ssl_crl_file;  -- ok
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- ok
+ALTER SYSTEM RESET ssl_dh_params_file;  -- ok
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- ok
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- ok
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- ok
+ALTER SYSTEM RESET ssl_key_file;  -- ok
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- ok
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- ok
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command;  -- ok
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- ok
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- ok
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- ok
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- ok
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_connection_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_connection_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_connection_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_connection_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_connection_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_connection_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_connection_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_connection_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_connection_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_connection_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_connection_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_connection_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_connection_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_connection_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_connection_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_connection_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_connection_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_connection_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_connection_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_connection_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_connection_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_connection_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_connection_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_connection_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_connection_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_connection_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_connection_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_connection_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_connection_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_connection_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_connection_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_connection_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_connection_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_connection_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_connection_admin has insufficient privileges
+SET compute_query_id = 'auto';  -- fail, regress_connection_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_connection_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_connection_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_connection_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_connection_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_connection_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_connection_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_connection_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_connection_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_connection_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_connection_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_connection_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_connection_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_connection_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_connection_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_connection_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_connection_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_connection_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_connection_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_connection_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_connection_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_connection_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_connection_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_connection_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_connection_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_connection_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_connection_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_connection_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_connection_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_connection_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_connection_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_connection_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_connection_admin has insufficient privileges
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_connection_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_connection_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_connection_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- ok
+ALTER SYSTEM RESET password_encryption;  -- ok
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- ok
+ALTER SYSTEM RESET client_connection_check_interval;  -- ok
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_count;  -- ok
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- ok
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- ok
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- ok
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- ok
+ALTER SYSTEM RESET tcp_user_timeout;  -- ok
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_connection_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_connection_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_connection_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_connection_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_connection_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_connection_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_connection_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_connection_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_connection_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_connection_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_connection_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_connection_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_connection_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_connection_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_connection_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_connection_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_connection_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_connection_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_connection_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_connection_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_connection_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_connection_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_connection_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_connection_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_connection_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_connection_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_connection_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_connection_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_connection_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_connection_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_connection_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_connection_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_connection_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_connection_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_connection_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_connection_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_connection_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_connection_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_connection_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_connection_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_connection_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_connection_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_connection_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0008-Adding-role-pg_manage_wal_settings.patchapplication/octet-stream; name=v6-0008-Adding-role-pg_manage_wal_settings.patch; x-unix-mode=0644Download
From 6df5360c07dcde333a107c236689cfafce863dae Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 16:52:10 -0700
Subject: [PATCH v6 08/19] Adding role pg_manage_wal_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls write ahead log behavior or resource usage.
---
 doc/src/sgml/user-manag.sgml               |    9 +-
 src/backend/utils/misc/guc.c               |   74 +-
 src/include/catalog/pg_authid.dat          |    5 +
 src/include/utils/guc.h                    |    1 +
 src/test/regress/expected/wal_settings.out | 1681 ++++++++++++++++++++
 src/test/regress/parallel_schedule         |    2 +-
 src/test/regress/sql/wal_settings.sql      | 1051 ++++++++++++
 7 files changed, 2785 insertions(+), 38 deletions(-)
 create mode 100644 src/test/regress/expected/wal_settings.out
 create mode 100644 src/test/regress/sql/wal_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index 4686da132b..f272c82770 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -606,6 +606,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_connection_settings</entry>
        <entry>Allow changing settings which control connections and authentication.</entry>
       </row>
+      <row>
+       <entry>pg_manage_wal_settings</entry>
+       <entry>Allow changing settings which control write ahead log behavior.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -654,8 +658,9 @@ DROP ROLE doomed_role;
   <literal>pg_manage_vacuum_settings</literal>,
   <literal>pg_manage_autovacuum_settings</literal>,
   <literal>pg_manage_logging_settings</literal>,
-  <literal>pg_manage_replication_settings</literal> and
-  <literal>pg_manage_connection_settings</literal> roles are intended to allow
+  <literal>pg_manage_replication_settings</literal>,
+  <literal>pg_manage_connection_settings</literal> and
+  <literal>pg_manage_wal_settings</literal> roles are intended to allow
   administrators to have trusted, but non-superuser, roles to configure the
   server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 56b19a9018..4472bcece6 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1270,7 +1270,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "sure that updates are physically written to disk. This insures "
 						 "that a database cluster will recover to a consistent state after "
 						 "an operating system or hardware crash."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&enableFsync,
 		true,
@@ -1335,7 +1335,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "stored in WAL are not enough to recover.  This option writes "
 						 "pages when first modified after a checkpoint to WAL so full recovery "
 						 "is possible."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&fullPageWrites,
 		true,
@@ -1346,7 +1346,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&wal_log_hints,
 		false,
@@ -1357,7 +1357,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_init_zero", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Writes zeroes to new WAL files before first use."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&wal_init_zero,
 		true,
@@ -1368,7 +1368,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_recycle", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Recycles WAL files by renaming them."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&wal_recycle,
 		true,
@@ -1915,7 +1915,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"wal_debug", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Emit WAL-related debugging output."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&XLOG_DEBUG,
@@ -1985,7 +1985,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"recovery_target_inclusive", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets whether to include or exclude transaction with recovery target."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recoveryTargetInclusive,
 		true,
@@ -2240,7 +2240,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Forces a switch to the next WAL file if a "
 						 "new file has not been started within N seconds."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&XLogArchiveTimeout,
@@ -2926,7 +2926,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the minimum size to shrink the WAL to."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&min_wal_size_mb,
@@ -2939,7 +2939,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the WAL size that triggers a checkpoint."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_MB
 		},
 		&max_wal_size_mb,
@@ -2952,7 +2952,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_timeout", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Sets the maximum time between automatic WAL checkpoints."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_S
 		},
 		&CheckPointTimeout,
@@ -2979,7 +2979,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"checkpoint_flush_after", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Number of pages after which previously performed writes are flushed to disk."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_BLOCKS
 		},
 		&checkpoint_flush_after,
@@ -2991,7 +2991,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_buffers", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_XBLOCKS
 		},
 		&XLOGbuffers,
@@ -3003,7 +3003,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_delay", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Time between WAL flushes performed in the WAL writer."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_MS
 		},
 		&WalWriterDelay,
@@ -3015,7 +3015,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_writer_flush_after", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Amount of WAL written out by WAL writer that triggers a flush."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_XBLOCKS
 		},
 		&WalWriterFlushAfter,
@@ -3027,7 +3027,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"wal_skip_threshold", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Minimum size of new file to fsync instead of writing WAL."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_WAL_SETTINGS,
 			GUC_UNIT_KB
 		},
 		&wal_skip_threshold,
@@ -3089,7 +3089,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the delay in microseconds between transaction commit and "
 						 "flushing WAL to disk."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 			/* we have no microseconds designation, so can't supply units here */
 		},
 		&CommitDelay,
@@ -3102,7 +3102,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the minimum concurrent open transactions before performing "
 						 "commit_delay."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&CommitSiblings,
 		5, 0, 1000,
@@ -4043,7 +4043,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"checkpoint_completion_target", PGC_SIGHUP, WAL_CHECKPOINTS,
 			gettext_noop("Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&CheckPointCompletionTarget,
 		0.9, 0.0, 1.0,
@@ -4086,7 +4086,7 @@ static struct config_string ConfigureNamesString[] =
 		{"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
 			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&XLogArchiveCommand,
 		"",
@@ -4097,7 +4097,7 @@ static struct config_string ConfigureNamesString[] =
 		{"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recoveryRestoreCommand,
 		"",
@@ -4108,7 +4108,7 @@ static struct config_string ConfigureNamesString[] =
 		{"archive_cleanup_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed at every restart point."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&archiveCleanupCommand,
 		"",
@@ -4119,7 +4119,7 @@ static struct config_string ConfigureNamesString[] =
 		{"recovery_end_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
 			gettext_noop("Sets the shell command that will be executed once at the end of recovery."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recoveryEndCommand,
 		"",
@@ -4130,7 +4130,7 @@ static struct config_string ConfigureNamesString[] =
 		{"recovery_target_timeline", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Specifies the timeline to recover into."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recovery_target_timeline_string,
 		"latest",
@@ -4141,7 +4141,7 @@ static struct config_string ConfigureNamesString[] =
 		{"recovery_target", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Set to \"immediate\" to end recovery as soon as a consistent state is reached."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recovery_target_string,
 		"",
@@ -4151,7 +4151,7 @@ static struct config_string ConfigureNamesString[] =
 		{"recovery_target_xid", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the transaction ID up to which recovery will proceed."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recovery_target_xid_string,
 		"",
@@ -4161,7 +4161,7 @@ static struct config_string ConfigureNamesString[] =
 		{"recovery_target_time", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the time stamp up to which recovery will proceed."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recovery_target_time_string,
 		"",
@@ -4171,7 +4171,7 @@ static struct config_string ConfigureNamesString[] =
 		{"recovery_target_name", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the named restore point up to which recovery will proceed."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recovery_target_name_string,
 		"",
@@ -4181,7 +4181,7 @@ static struct config_string ConfigureNamesString[] =
 		{"recovery_target_lsn", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the LSN of the write-ahead log location up to which recovery will proceed."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recovery_target_lsn_string,
 		"",
@@ -5100,7 +5100,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"synchronous_commit", PGC_USERSET, WAL_SETTINGS,
 			gettext_noop("Sets the current transaction's synchronization level."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&synchronous_commit,
 		SYNCHRONOUS_COMMIT_ON, synchronous_commit_options,
@@ -5111,7 +5111,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
 			gettext_noop("Allows archiving of WAL files using archive_command."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&XLogArchiveMode,
 		ARCHIVE_MODE_OFF, archive_mode_options,
@@ -5122,7 +5122,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"recovery_target_action", PGC_POSTMASTER, WAL_RECOVERY_TARGET,
 			gettext_noop("Sets the action to perform upon reaching the recovery target."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&recoveryTargetAction,
 		RECOVERY_TARGET_ACTION_PAUSE, recovery_target_action_options,
@@ -5161,7 +5161,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"wal_compression", PGC_SUSET, WAL_SETTINGS,
 			gettext_noop("Compresses full-page writes written in WAL file with specified method."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&wal_compression,
 		WAL_COMPRESSION_NONE, wal_compression_options,
@@ -5172,7 +5172,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"wal_level", PGC_POSTMASTER, WAL_SETTINGS,
 			gettext_noop("Sets the level of information written to the WAL."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&wal_level,
 		WAL_LEVEL_REPLICA, wal_level_options, NULL, NULL, NULL
@@ -5204,7 +5204,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS,
 			gettext_noop("Selects the method used for forcing WAL updates to disk."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_WAL_SETTINGS
 		},
 		&sync_method,
 		DEFAULT_SYNC_METHOD, sync_method_options,
@@ -7632,6 +7632,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_CONNECTION_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_WAL_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_WAL_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 1885823710..cde919bee8 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -109,5 +109,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9285', oid_symbol => 'ROLE_PG_MANAGE_WAL_SETTINGS',
+  rolname => 'pg_manage_wal_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 41d664da47..6e458f33c6 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -208,6 +208,7 @@ typedef enum
 #define GUC_WRITE_SERVER_FILES				0x0010
 #define GUC_MANAGE_REPLICATION_SETTINGS		0x0020
 #define GUC_MANAGE_CONNECTION_SETTINGS		0x0040
+#define GUC_MANAGE_WAL_SETTINGS				0x0080
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/wal_settings.out b/src/test/regress/expected/wal_settings.out
new file mode 100644
index 0000000000..4933844bce
--- /dev/null
+++ b/src/test/regress/expected/wal_settings.out
@@ -0,0 +1,1681 @@
+-- Non-superuser with privileges to configure write ahead log settings
+CREATE ROLE regress_wal_admin NOSUPERUSER;
+GRANT pg_manage_wal_settings TO regress_wal_admin;
+-- Perform all operations as user 'regress_wal_admin' --
+SET SESSION AUTHORIZATION regress_wal_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+SET compute_query_id = 'auto';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_wal_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_wal_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index a43ebc1429..a103010034 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/wal_settings.sql b/src/test/regress/sql/wal_settings.sql
new file mode 100644
index 0000000000..0eadc83021
--- /dev/null
+++ b/src/test/regress/sql/wal_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure write ahead log settings
+CREATE ROLE regress_wal_admin NOSUPERUSER;
+GRANT pg_manage_wal_settings TO regress_wal_admin;
+-- Perform all operations as user 'regress_wal_admin' --
+SET SESSION AUTHORIZATION regress_wal_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- ok
+ALTER SYSTEM RESET archive_mode;  -- ok
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- ok
+ALTER SYSTEM RESET recovery_target_action;  -- ok
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- ok
+ALTER SYSTEM RESET recovery_target_inclusive;  -- ok
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- ok
+ALTER SYSTEM RESET recovery_target_lsn;  -- ok
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- ok
+ALTER SYSTEM RESET recovery_target_name;  -- ok
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- ok
+ALTER SYSTEM RESET recovery_target_time;  -- ok
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- ok
+ALTER SYSTEM RESET recovery_target_timeline;  -- ok
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- ok
+ALTER SYSTEM RESET recovery_target_xid;  -- ok
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- ok
+ALTER SYSTEM RESET wal_buffers;  -- ok
+ALTER SYSTEM SET wal_level = 'replica';  -- ok
+ALTER SYSTEM RESET wal_level;  -- ok
+ALTER SYSTEM SET wal_log_hints = OFF;  -- ok
+ALTER SYSTEM RESET wal_log_hints;  -- ok
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- ok
+ALTER SYSTEM RESET archive_cleanup_command;  -- ok
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- ok
+ALTER SYSTEM RESET recovery_end_command;  -- ok
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- ok
+ALTER SYSTEM RESET restore_command;  -- ok
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- ok
+ALTER SYSTEM RESET archive_command;  -- ok
+ALTER SYSTEM SET archive_timeout = 50;  -- ok
+ALTER SYSTEM RESET archive_timeout;  -- ok
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- ok
+ALTER SYSTEM RESET checkpoint_completion_target;  -- ok
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_flush_after;  -- ok
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- ok
+ALTER SYSTEM RESET checkpoint_timeout;  -- ok
+ALTER SYSTEM SET max_wal_size = 50;  -- ok
+ALTER SYSTEM RESET max_wal_size;  -- ok
+ALTER SYSTEM SET min_wal_size = 50;  -- ok
+ALTER SYSTEM RESET min_wal_size;  -- ok
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- ok
+ALTER SYSTEM RESET fsync;  -- ok
+ALTER SYSTEM SET full_page_writes = OFF;  -- ok
+ALTER SYSTEM RESET full_page_writes;  -- ok
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- ok
+ALTER SYSTEM RESET wal_sync_method;  -- ok
+ALTER SYSTEM SET wal_writer_delay = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_delay;  -- ok
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- ok
+ALTER SYSTEM RESET wal_writer_flush_after;  -- ok
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_wal_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_wal_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_wal_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_wal_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_wal_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_wal_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_wal_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_wal_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_wal_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_wal_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_wal_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_wal_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_wal_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_wal_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_wal_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_wal_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_wal_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_wal_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_wal_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_wal_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_wal_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_wal_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_wal_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_wal_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_wal_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_wal_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_wal_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_wal_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_wal_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_wal_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_wal_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_wal_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_wal_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_wal_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_wal_admin has insufficient privileges
+SET compute_query_id = 'auto';  -- fail, regress_wal_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- ok
+RESET commit_delay;  -- ok
+ALTER SYSTEM SET commit_delay = 50;  -- ok
+ALTER SYSTEM RESET commit_delay;  -- ok
+SET wal_compression = 'pglz';  -- ok
+RESET wal_compression;  -- ok
+ALTER SYSTEM SET wal_compression = 'pglz';  -- ok
+ALTER SYSTEM RESET wal_compression;  -- ok
+SET wal_init_zero = OFF;  -- ok
+RESET wal_init_zero;  -- ok
+ALTER SYSTEM SET wal_init_zero = OFF;  -- ok
+ALTER SYSTEM RESET wal_init_zero;  -- ok
+SET wal_recycle = OFF;  -- ok
+RESET wal_recycle;  -- ok
+ALTER SYSTEM SET wal_recycle = OFF;  -- ok
+ALTER SYSTEM RESET wal_recycle;  -- ok
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_wal_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_wal_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_wal_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_wal_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_wal_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_wal_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_wal_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_wal_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_wal_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_wal_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_wal_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_wal_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_wal_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_wal_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_wal_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_wal_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_wal_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_wal_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_wal_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_wal_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_wal_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_wal_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_wal_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_wal_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_wal_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_wal_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_wal_admin has insufficient privileges
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_wal_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_wal_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_wal_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_wal_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_wal_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_wal_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_wal_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_wal_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_wal_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_wal_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_wal_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_wal_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_wal_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_wal_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_wal_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_wal_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_wal_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_wal_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_wal_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_wal_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_wal_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_wal_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_wal_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_wal_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_wal_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_wal_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_wal_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_wal_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_wal_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_wal_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_wal_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_wal_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_wal_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_wal_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_wal_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_wal_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_wal_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_wal_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_wal_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_wal_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_wal_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_wal_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_wal_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_wal_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_wal_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_wal_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- ok
+ALTER SYSTEM RESET commit_siblings;  -- ok
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- ok
+ALTER SYSTEM RESET synchronous_commit;  -- ok
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- ok
+ALTER SYSTEM RESET wal_skip_threshold;  -- ok
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_wal_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0009-Adding-role-pg_manage_query_tuning_settings.patchapplication/octet-stream; name=v6-0009-Adding-role-pg_manage_query_tuning_settings.patch; x-unix-mode=0644Download
From eb790e52ad8afb177dafcfc19fa36fbec8956694 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 16:57:01 -0700
Subject: [PATCH v6 09/19] Adding role pg_manage_query_tuning_settings

This new role can ALTER SYSTEM SET any GUC variable which controls
query planning and execution tuning.
---
 doc/src/sgml/user-manag.sgml                  |   13 +-
 src/backend/utils/misc/guc.c                  |  104 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../expected/query_tuning_settings.out        | 1657 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 .../regress/sql/query_tuning_settings.sql     | 1051 +++++++++++
 7 files changed, 2778 insertions(+), 55 deletions(-)
 create mode 100644 src/test/regress/expected/query_tuning_settings.out
 create mode 100644 src/test/regress/sql/query_tuning_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index f272c82770..f60df79c1c 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -610,6 +610,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_wal_settings</entry>
        <entry>Allow changing settings which control write ahead log behavior.</entry>
       </row>
+      <row>
+       <entry>pg_manage_query_tuning_settings</entry>
+       <entry>Allow changing settings which control tuning of query planning and execution.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -659,10 +663,11 @@ DROP ROLE doomed_role;
   <literal>pg_manage_autovacuum_settings</literal>,
   <literal>pg_manage_logging_settings</literal>,
   <literal>pg_manage_replication_settings</literal>,
-  <literal>pg_manage_connection_settings</literal> and
-  <literal>pg_manage_wal_settings</literal> roles are intended to allow
-  administrators to have trusted, but non-superuser, roles to configure the
-  server.
+  <literal>pg_manage_connection_settings</literal>,
+  <literal>pg_manage_wal_settings</literal> and
+  <literal>pg_manage_query_tuning_settings</literal> roles are intended to
+  allow administrators to have trusted, but non-superuser, roles to configure
+  the server.
   </para>
 
   <para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 4472bcece6..5d50ee3597 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -972,7 +972,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_seqscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of sequential-scan plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_seqscan,
@@ -983,7 +983,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-scan plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_indexscan,
@@ -994,7 +994,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_indexonlyscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of index-only-scan plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_indexonlyscan,
@@ -1005,7 +1005,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_bitmapscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of bitmap-scan plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_bitmapscan,
@@ -1016,7 +1016,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_tidscan", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of TID scan plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_tidscan,
@@ -1027,7 +1027,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of explicit sort steps."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_sort,
@@ -1038,7 +1038,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_incremental_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of incremental sort steps."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_QUERY_TUNING_SETTINGS
 		},
 		&enable_incremental_sort,
 		true,
@@ -1048,7 +1048,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashagg", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hashed aggregation plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_hashagg,
@@ -1059,7 +1059,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_material", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of materialization."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_material,
@@ -1070,7 +1070,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_memoize", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of memoization."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_memoize,
@@ -1081,7 +1081,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_nestloop", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of nested-loop join plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_nestloop,
@@ -1092,7 +1092,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_mergejoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of merge join plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_mergejoin,
@@ -1103,7 +1103,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_hashjoin", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of hash join plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_hashjoin,
@@ -1114,7 +1114,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_gathermerge", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of gather merge plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_gathermerge,
@@ -1125,7 +1125,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise join."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_join,
@@ -1136,7 +1136,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_partitionwise_aggregate", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables partitionwise aggregation and grouping."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_partitionwise_aggregate,
@@ -1147,7 +1147,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel append plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_append,
@@ -1158,7 +1158,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_parallel_hash", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of parallel hash plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_parallel_hash,
@@ -1171,7 +1171,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Allows the query planner and executor to compare partition "
 						 "bounds to conditions in the query to determine which "
 						 "partitions must be scanned."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_partition_pruning,
@@ -1182,7 +1182,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"enable_async_append", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enables the planner's use of async append plans."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_async_append,
@@ -1194,7 +1194,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables genetic query optimization."),
 			gettext_noop("This algorithm attempts to do planning without "
 						 "exhaustive searching."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&enable_geqo,
@@ -1901,7 +1901,7 @@ static struct config_bool ConfigureNamesBool[] =
 			"optimize_bounded_sort", PGC_USERSET, QUERY_TUNING_METHOD,
 			gettext_noop("Enable bounded sorting using heap sort."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_NOT_IN_SAMPLE | GUC_EXPLAIN
 		},
 		&optimize_bounded_sort,
@@ -2124,7 +2124,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"jit", PGC_USERSET, QUERY_TUNING_OTHER,
 			gettext_noop("Allow JIT compilation."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_enabled,
@@ -2263,7 +2263,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the default statistics target."),
 			gettext_noop("This applies to table columns that have not had a "
 						 "column-specific target set via ALTER TABLE SET STATISTICS."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_QUERY_TUNING_SETTINGS
 		},
 		&default_statistics_target,
 		100, 1, 10000,
@@ -2276,7 +2276,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will merge subqueries into upper "
 						 "queries if the resulting FROM list would have no more than "
 						 "this many items."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&from_collapse_limit,
@@ -2290,7 +2290,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("The planner will flatten explicit JOIN "
 						 "constructs into lists of FROM items whenever a "
 						 "list of no more than this many items would result."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&join_collapse_limit,
@@ -2301,7 +2301,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_threshold", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("Sets the threshold of FROM items beyond which GEQO is used."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&geqo_threshold,
@@ -2312,7 +2312,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_effort", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: effort is used to set the default for other GEQO parameters."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_effort,
@@ -2323,7 +2323,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_pool_size", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of individuals in the population."),
 			gettext_noop("Zero selects a suitable default value."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_pool_size,
@@ -2334,7 +2334,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"geqo_generations", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: number of iterations of the algorithm."),
 			gettext_noop("Zero selects a suitable default value."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_generations,
@@ -3228,7 +3228,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&effective_io_concurrency,
@@ -3247,7 +3247,7 @@ static struct config_int ConfigureNamesInt[] =
 			RESOURCES_ASYNCHRONOUS,
 			gettext_noop("A variant of effective_io_concurrency that is used for maintenance work."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&maintenance_io_concurrency,
@@ -3639,7 +3639,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Sets the planner's assumption about the total size of the data caches."),
 			gettext_noop("That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. "
 						 "This is measured in disk pages, which are normally 8 kB each."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&effective_cache_size,
@@ -3651,7 +3651,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_table_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of table data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_table_scan_size,
@@ -3663,7 +3663,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"min_parallel_index_scan_size", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Sets the minimum amount of index data for a parallel scan."),
 			gettext_noop("If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_UNIT_BLOCKS | GUC_EXPLAIN,
 		},
 		&min_parallel_index_scan_size,
@@ -3794,7 +3794,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "sequentially fetched disk page."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&seq_page_cost,
@@ -3806,7 +3806,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of a "
 						 "nonsequentially fetched disk page."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&random_page_cost,
@@ -3818,7 +3818,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each tuple (row)."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cpu_tuple_cost,
@@ -3830,7 +3830,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each index entry during an index scan."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cpu_index_tuple_cost,
@@ -3842,7 +3842,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "processing each operator or function call."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cpu_operator_cost,
@@ -3854,7 +3854,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "passing each tuple (row) from worker to leader backend."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&parallel_tuple_cost,
@@ -3866,7 +3866,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the cost of "
 						 "starting up worker processes for parallel query."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&parallel_setup_cost,
@@ -3878,7 +3878,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT compilation if query is more expensive."),
 			gettext_noop("-1 disables JIT compilation."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_above_cost,
@@ -3890,7 +3890,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_optimize_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Optimize JIT-compiled functions if query is more expensive."),
 			gettext_noop("-1 disables optimization."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_optimize_above_cost,
@@ -3902,7 +3902,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"jit_inline_above_cost", PGC_USERSET, QUERY_TUNING_COST,
 			gettext_noop("Perform JIT inlining if query is more expensive."),
 			gettext_noop("-1 disables inlining."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&jit_inline_above_cost,
@@ -3915,7 +3915,7 @@ static struct config_real ConfigureNamesReal[] =
 			gettext_noop("Sets the planner's estimate of the fraction of "
 						 "a cursor's rows that will be retrieved."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&cursor_tuple_fraction,
@@ -3927,7 +3927,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: selective pressure within the population."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_selection_bias,
@@ -3939,7 +3939,7 @@ static struct config_real ConfigureNamesReal[] =
 		{"geqo_seed", PGC_USERSET, QUERY_TUNING_GEQO,
 			gettext_noop("GEQO: seed for random path selection."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&Geqo_seed,
@@ -4968,7 +4968,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Enables the planner to use constraints to optimize queries."),
 			gettext_noop("Table scans will be skipped if their constraints"
 						 " guarantee that no rows match the query."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&constraint_exclusion,
@@ -5274,7 +5274,7 @@ static struct config_enum ConfigureNamesEnum[] =
 			gettext_noop("Prepared statements can have custom and generic plans, and the planner "
 						 "will attempt to choose which is better.  This can be set to override "
 						 "the default behavior."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_QUERY_TUNING_SETTINGS,
 			GUC_EXPLAIN
 		},
 		&plan_cache_mode,
@@ -7636,6 +7636,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_WAL_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_QUERY_TUNING_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_QUERY_TUNING_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index cde919bee8..68e305c34f 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -114,5 +114,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9286', oid_symbol => 'ROLE_PG_MANAGE_QUERY_TUNING_SETTINGS',
+  rolname => 'pg_manage_query_tuning_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 6e458f33c6..c7a2e22739 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -209,6 +209,7 @@ typedef enum
 #define GUC_MANAGE_REPLICATION_SETTINGS		0x0020
 #define GUC_MANAGE_CONNECTION_SETTINGS		0x0040
 #define GUC_MANAGE_WAL_SETTINGS				0x0080
+#define GUC_MANAGE_QUERY_TUNING_SETTINGS	0x0200	/* 0x0100 = superuser */
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/query_tuning_settings.out b/src/test/regress/expected/query_tuning_settings.out
new file mode 100644
index 0000000000..ec962d9e45
--- /dev/null
+++ b/src/test/regress/expected/query_tuning_settings.out
@@ -0,0 +1,1657 @@
+-- Non-superuser with privileges to tune query planning and execution
+CREATE ROLE regress_query_tuning_admin NOSUPERUSER;
+GRANT pg_manage_query_tuning_settings TO regress_query_tuning_admin;
+-- Perform all operations as user 'regress_query_tuning_admin' --
+SET SESSION AUTHORIZATION regress_query_tuning_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET allow_system_table_mods = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET debug_discard_caches = 2;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+SET compute_query_id = 'auto';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- ok
+ALTER SYSTEM RESET enable_memoize;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_query_tuning_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index a103010034..c28ebce2d6 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings query_tuning_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/query_tuning_settings.sql b/src/test/regress/sql/query_tuning_settings.sql
new file mode 100644
index 0000000000..bb88cccee8
--- /dev/null
+++ b/src/test/regress/sql/query_tuning_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to tune query planning and execution
+CREATE ROLE regress_query_tuning_admin NOSUPERUSER;
+GRANT pg_manage_query_tuning_settings TO regress_query_tuning_admin;
+-- Perform all operations as user 'regress_query_tuning_admin' --
+SET SESSION AUTHORIZATION regress_query_tuning_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET allow_system_table_mods = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET compute_query_id = 'auto';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- ok
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_operator_cost;  -- ok
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET cpu_tuple_cost;  -- ok
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- ok
+ALTER SYSTEM RESET effective_cache_size;  -- ok
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_above_cost;  -- ok
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_inline_above_cost;  -- ok
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- ok
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- ok
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- ok
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- ok
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- ok
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_setup_cost;  -- ok
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- ok
+ALTER SYSTEM RESET parallel_tuple_cost;  -- ok
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- ok
+ALTER SYSTEM RESET random_page_cost;  -- ok
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- ok
+ALTER SYSTEM RESET seq_page_cost;  -- ok
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- ok
+ALTER SYSTEM RESET geqo;  -- ok
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- ok
+ALTER SYSTEM RESET geqo_effort;  -- ok
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- ok
+ALTER SYSTEM RESET geqo_generations;  -- ok
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- ok
+ALTER SYSTEM RESET geqo_pool_size;  -- ok
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- ok
+ALTER SYSTEM RESET geqo_seed;  -- ok
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- ok
+ALTER SYSTEM RESET geqo_selection_bias;  -- ok
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- ok
+ALTER SYSTEM RESET geqo_threshold;  -- ok
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_async_append;  -- ok
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_bitmapscan;  -- ok
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- ok
+ALTER SYSTEM RESET enable_gathermerge;  -- ok
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashagg;  -- ok
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_hashjoin;  -- ok
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_incremental_sort;  -- ok
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexonlyscan;  -- ok
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_indexscan;  -- ok
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- ok
+ALTER SYSTEM RESET enable_material;  -- ok
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- ok
+ALTER SYSTEM RESET enable_memoize;  -- ok
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- ok
+ALTER SYSTEM RESET enable_mergejoin;  -- ok
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- ok
+ALTER SYSTEM RESET enable_nestloop;  -- ok
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_append;  -- ok
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- ok
+ALTER SYSTEM RESET enable_parallel_hash;  -- ok
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- ok
+ALTER SYSTEM RESET enable_partition_pruning;  -- ok
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- ok
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- ok
+ALTER SYSTEM RESET enable_partitionwise_join;  -- ok
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_seqscan;  -- ok
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- ok
+ALTER SYSTEM RESET enable_sort;  -- ok
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- ok
+ALTER SYSTEM RESET enable_tidscan;  -- ok
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- ok
+ALTER SYSTEM RESET constraint_exclusion;  -- ok
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- ok
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- ok
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- ok
+ALTER SYSTEM RESET default_statistics_target;  -- ok
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET from_collapse_limit;  -- ok
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- ok
+ALTER SYSTEM RESET jit;  -- ok
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- ok
+ALTER SYSTEM RESET join_collapse_limit;  -- ok
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- ok
+ALTER SYSTEM RESET plan_cache_mode;  -- ok
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET effective_io_concurrency;  -- ok
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- ok
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- ok
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_query_tuning_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_query_tuning_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_query_tuning_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_query_tuning_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_query_tuning_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0010-Adding-role-pg_manage_stats_settings.patchapplication/octet-stream; name=v6-0010-Adding-role-pg_manage_stats_settings.patch; x-unix-mode=0644Download
From 0b1fe05db702025769738830e701f32c14fe260c Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 17:08:22 -0700
Subject: [PATCH v6 10/19] Adding role pg_manage_stats_settings

This new role can SET and ALTER SYSTEM SET any GUC variable which
controls stats collection.  Note that variables controlling where to
write stats to the server filesystem may not be set by this role
unless the user also has membership in role pg_write_server_files.
---
 doc/src/sgml/user-manag.sgml                 |    9 +-
 src/backend/utils/misc/guc.c                 |   20 +-
 src/include/catalog/pg_authid.dat            |    5 +
 src/include/utils/guc.h                      |    1 +
 src/test/regress/expected/stats_settings.out | 1735 ++++++++++++++++++
 src/test/regress/parallel_schedule           |    2 +-
 src/test/regress/sql/stats_settings.sql      | 1060 +++++++++++
 7 files changed, 2821 insertions(+), 11 deletions(-)
 create mode 100644 src/test/regress/expected/stats_settings.out
 create mode 100644 src/test/regress/sql/stats_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index f60df79c1c..af3d40574f 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -614,6 +614,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_query_tuning_settings</entry>
        <entry>Allow changing settings which control tuning of query planning and execution.</entry>
       </row>
+      <row>
+       <entry>pg_manage_stats_settings</entry>
+       <entry>Allow changing settings which control collection of statistics.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -664,8 +668,9 @@ DROP ROLE doomed_role;
   <literal>pg_manage_logging_settings</literal>,
   <literal>pg_manage_replication_settings</literal>,
   <literal>pg_manage_connection_settings</literal>,
-  <literal>pg_manage_wal_settings</literal> and
-  <literal>pg_manage_query_tuning_settings</literal> roles are intended to
+  <literal>pg_manage_wal_settings</literal>,
+  <literal>pg_manage_query_tuning_settings</literal> and
+  <literal>pg_manage_stats_settings</literal> roles are intended to
   allow administrators to have trusted, but non-superuser, roles to configure
   the server.
   </para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 5d50ee3597..bffe7f72dd 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1573,7 +1573,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Enables the collection of information on the currently "
 						 "executing command of each session, along with "
 						 "the time at which that command began execution."),
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_STATS_SETTINGS
 		},
 		&pgstat_track_activities,
 		true,
@@ -1583,7 +1583,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"track_counts", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects statistics on database activity."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_STATS_SETTINGS
 		},
 		&pgstat_track_counts,
 		true,
@@ -1593,7 +1593,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"track_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for database I/O activity."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_STATS_SETTINGS
 		},
 		&track_io_timing,
 		false,
@@ -1603,7 +1603,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"track_wal_io_timing", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects timing statistics for WAL I/O activity."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_STATS_SETTINGS
 		},
 		&track_wal_io_timing,
 		false,
@@ -3700,7 +3700,7 @@ static struct config_int ConfigureNamesInt[] =
 		{"track_activity_query_size", PGC_POSTMASTER, STATS_COLLECTOR,
 			gettext_noop("Sets the size reserved for pg_stat_activity.query, in bytes."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_STATS_SETTINGS,
 			GUC_UNIT_BYTE
 		},
 		&pgstat_track_activity_query_size,
@@ -4769,7 +4769,7 @@ static struct config_string ConfigureNamesString[] =
 		{"stats_temp_directory", PGC_SIGHUP, STATS_COLLECTOR,
 			gettext_noop("Writes temporary statistics files to the specified directory."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_STATS_SETTINGS | GUC_WRITE_SERVER_FILES
 		},
 		&pgstat_temp_directory,
 		PG_STAT_TMP_DIR,
@@ -4956,7 +4956,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"compute_query_id", PGC_SUSET, STATS_MONITORING,
 			gettext_noop("Compute query identifiers."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_STATS_SETTINGS
 		},
 		&compute_query_id,
 		COMPUTE_QUERY_ID_AUTO, compute_query_id_options,
@@ -5150,7 +5150,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"track_functions", PGC_SUSET, STATS_COLLECTOR,
 			gettext_noop("Collects function-level statistics on database activity."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_STATS_SETTINGS
 		},
 		&pgstat_track_functions,
 		TRACK_FUNC_OFF, track_function_options,
@@ -7640,6 +7640,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_QUERY_TUNING_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_STATS_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_STATS_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 68e305c34f..3f80cbd59b 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -119,5 +119,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9287', oid_symbol => 'ROLE_PG_MANAGE_STATS_SETTINGS',
+  rolname => 'pg_manage_stats_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index c7a2e22739..d45e3a7fcb 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -210,6 +210,7 @@ typedef enum
 #define GUC_MANAGE_CONNECTION_SETTINGS		0x0040
 #define GUC_MANAGE_WAL_SETTINGS				0x0080
 #define GUC_MANAGE_QUERY_TUNING_SETTINGS	0x0200	/* 0x0100 = superuser */
+#define GUC_MANAGE_STATS_SETTINGS			0x0400
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/stats_settings.out b/src/test/regress/expected/stats_settings.out
new file mode 100644
index 0000000000..7851df8f3f
--- /dev/null
+++ b/src/test/regress/expected/stats_settings.out
@@ -0,0 +1,1735 @@
+-- Non-superuser with privileges to configure stats collection
+CREATE ROLE regress_stats_collation_admin NOSUPERUSER;
+GRANT pg_manage_stats_settings TO regress_stats_collation_admin;
+-- Perform all operations as user 'regress_stats_collation_admin' --
+SET SESSION AUTHORIZATION regress_stats_collation_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET ignore_checksum_failure = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET jit_dump_bitcode = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+SET zero_damaged_pages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+GRANT pg_write_server_files TO regress_stats_collation_admin;
+SET SESSION AUTHORIZATION regress_stats_collation_admin;
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_stats_collation_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index c28ebce2d6..6e6cd0c9b3 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings query_tuning_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings query_tuning_settings stats_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/stats_settings.sql b/src/test/regress/sql/stats_settings.sql
new file mode 100644
index 0000000000..dccdf788cd
--- /dev/null
+++ b/src/test/regress/sql/stats_settings.sql
@@ -0,0 +1,1060 @@
+-- Non-superuser with privileges to configure stats collection
+CREATE ROLE regress_stats_collation_admin NOSUPERUSER;
+GRANT pg_manage_stats_settings TO regress_stats_collation_admin;
+-- Perform all operations as user 'regress_stats_collation_admin' --
+SET SESSION AUTHORIZATION regress_stats_collation_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- ok
+ALTER SYSTEM RESET track_activity_query_size;  -- ok
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- ok
+RESET track_activities;  -- ok
+ALTER SYSTEM SET track_activities = OFF;  -- ok
+ALTER SYSTEM RESET track_activities;  -- ok
+SET track_counts = OFF;  -- ok
+RESET track_counts;  -- ok
+ALTER SYSTEM SET track_counts = OFF;  -- ok
+ALTER SYSTEM RESET track_counts;  -- ok
+SET track_functions = 'none';  -- ok
+RESET track_functions;  -- ok
+ALTER SYSTEM SET track_functions = 'none';  -- ok
+ALTER SYSTEM RESET track_functions;  -- ok
+SET track_io_timing = OFF;  -- ok
+RESET track_io_timing;  -- ok
+ALTER SYSTEM SET track_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_io_timing;  -- ok
+SET track_wal_io_timing = OFF;  -- ok
+RESET track_wal_io_timing;  -- ok
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- ok
+ALTER SYSTEM RESET track_wal_io_timing;  -- ok
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET compute_query_id = 'auto';  -- ok
+RESET compute_query_id;  -- ok
+ALTER SYSTEM SET compute_query_id = 'auto';  -- ok
+ALTER SYSTEM RESET compute_query_id;  -- ok
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_stats_collation_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_stats_collation_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_stats_collation_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_stats_collation_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+GRANT pg_write_server_files TO regress_stats_collation_admin;
+
+SET SESSION AUTHORIZATION regress_stats_collation_admin;
+
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- ok
+ALTER SYSTEM RESET stats_temp_directory;  -- ok
+
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_stats_collation_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0011-Adding-role-pg_manage_recovery_settings.patchapplication/octet-stream; name=v6-0011-Adding-role-pg_manage_recovery_settings.patch; x-unix-mode=0644Download
From fcb5473202f9102015df09cc66c5b18a1d80a20d Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 17:12:06 -0700
Subject: [PATCH v6 11/19] Adding role pg_manage_recovery_settings

This new role can SET or ALTER SYSTEM SET any GUC variable which
controls crash recovery settings.
---
 doc/src/sgml/user-manag.sgml                  |   13 +-
 src/backend/utils/misc/guc.c                  |   20 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../regress/expected/recovery_settings.out    | 1733 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 src/test/regress/sql/recovery_settings.sql    | 1051 ++++++++++
 7 files changed, 2812 insertions(+), 13 deletions(-)
 create mode 100644 src/test/regress/expected/recovery_settings.out
 create mode 100644 src/test/regress/sql/recovery_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index af3d40574f..a2d6bc4cbf 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -618,6 +618,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_stats_settings</entry>
        <entry>Allow changing settings which control collection of statistics.</entry>
       </row>
+      <row>
+       <entry>pg_manage_recovery_settings</entry>
+       <entry>Allow changing settings which control or are generally used for recovery.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -669,10 +673,11 @@ DROP ROLE doomed_role;
   <literal>pg_manage_replication_settings</literal>,
   <literal>pg_manage_connection_settings</literal>,
   <literal>pg_manage_wal_settings</literal>,
-  <literal>pg_manage_query_tuning_settings</literal> and
-  <literal>pg_manage_stats_settings</literal> roles are intended to
-  allow administrators to have trusted, but non-superuser, roles to configure
-  the server.
+  <literal>pg_manage_query_tuning_settings</literal>,
+  <literal>pg_manage_stats_settings</literal> and
+  <literal>pg_manage_recovery_settings</literal> roles are intended to allow
+  administrators to have trusted, but non-superuser, roles to configure the
+  server.
   </para>
 
   <para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index bffe7f72dd..f11951cc80 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1285,7 +1285,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "(but still report a warning), and continue processing. This "
 						 "behavior could cause crashes or other serious problems. Only "
 						 "has an effect if checksums are enabled."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_RECOVERY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_checksum_failure,
@@ -1300,7 +1300,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "zero_damaged_pages to true causes the system to instead report a "
 						 "warning, zero out the damaged page, and continue processing. This "
 						 "behavior will destroy data, namely all the rows on the damaged page."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_RECOVERY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&zero_damaged_pages,
@@ -1320,7 +1320,7 @@ static struct config_bool ConfigureNamesBool[] =
 						 "crashes, data loss, propagate or hide corruption, "
 						 "or other serious problems. Only has an effect "
 						 "during recovery or in standby mode."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_RECOVERY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&ignore_invalid_pages,
@@ -1445,7 +1445,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"restart_after_crash", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Reinitialize server after backend crash."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_RECOVERY_SETTINGS
 		},
 		&restart_after_crash,
 		true,
@@ -1455,7 +1455,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"remove_temp_files_after_crash", PGC_SIGHUP, DEVELOPER_OPTIONS,
 			gettext_noop("Remove temporary files after backend crash."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_RECOVERY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&remove_temp_files_after_crash,
@@ -2030,7 +2030,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"allow_system_table_mods", PGC_SUSET, DEVELOPER_OPTIONS,
 			gettext_noop("Allows modifications of the structure of system tables."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_RECOVERY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&allowSystemTableMods,
@@ -2043,7 +2043,7 @@ static struct config_bool ConfigureNamesBool[] =
 			gettext_noop("Disables reading from system indexes."),
 			gettext_noop("It does not prevent updating the indexes, so it is safe "
 						 "to use.  The worst consequence is slowness."),
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_RECOVERY_SETTINGS,
 			GUC_NOT_IN_SAMPLE
 		},
 		&IgnoreSystemIndexes,
@@ -5310,7 +5310,7 @@ static struct config_enum ConfigureNamesEnum[] =
 		{"recovery_init_sync_method", PGC_SIGHUP, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Sets the method for synchronizing the data directory before crash recovery."),
 			NULL,
-			GUC_SUPERUSER_ONLY,
+			GUC_MANAGE_RECOVERY_SETTINGS,
 		},
 		&recovery_init_sync_method,
 		RECOVERY_INIT_SYNC_METHOD_FSYNC, recovery_init_sync_method_options,
@@ -7644,6 +7644,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_STATS_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_RECOVERY_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_RECOVERY_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 3f80cbd59b..05ac06ccc9 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -124,5 +124,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9288', oid_symbol => 'ROLE_PG_MANAGE_RECOVERY_SETTINGS',
+  rolname => 'pg_manage_recovery_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index d45e3a7fcb..522130d911 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -211,6 +211,7 @@ typedef enum
 #define GUC_MANAGE_WAL_SETTINGS				0x0080
 #define GUC_MANAGE_QUERY_TUNING_SETTINGS	0x0200	/* 0x0100 = superuser */
 #define GUC_MANAGE_STATS_SETTINGS			0x0400
+#define GUC_MANAGE_RECOVERY_SETTINGS		0x0800
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/recovery_settings.out b/src/test/regress/expected/recovery_settings.out
new file mode 100644
index 0000000000..79b31e4669
--- /dev/null
+++ b/src/test/regress/expected/recovery_settings.out
@@ -0,0 +1,1733 @@
+-- Non-superuser with privileges to configure recovery
+CREATE ROLE regress_recovery_admin NOSUPERUSER;
+GRANT pg_manage_recovery_settings TO regress_recovery_admin;
+-- Perform all operations as user 'regress_recovery_admin' --
+SET SESSION AUTHORIZATION regress_recovery_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "data_sync_retry"
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET debug_discard_caches = 2;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET jit_dump_bitcode = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+SET compute_query_id = 'auto';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "exit_on_error"
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_recovery_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 6e6cd0c9b3..f193411a82 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings query_tuning_settings stats_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings query_tuning_settings stats_settings recovery_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/recovery_settings.sql b/src/test/regress/sql/recovery_settings.sql
new file mode 100644
index 0000000000..4bdbf2225d
--- /dev/null
+++ b/src/test/regress/sql/recovery_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure recovery
+CREATE ROLE regress_recovery_admin NOSUPERUSER;
+GRANT pg_manage_recovery_settings TO regress_recovery_admin;
+-- Perform all operations as user 'regress_recovery_admin' --
+SET SESSION AUTHORIZATION regress_recovery_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- ok
+ALTER SYSTEM RESET ignore_system_indexes;  -- ok
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- ok
+ALTER SYSTEM RESET ignore_invalid_pages;  -- ok
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET data_sync_retry;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- ok
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- ok
+ALTER SYSTEM RESET recovery_init_sync_method;  -- ok
+ALTER SYSTEM SET restart_after_crash = OFF;  -- ok
+ALTER SYSTEM RESET restart_after_crash;  -- ok
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_recovery_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_recovery_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_recovery_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET allow_system_table_mods = OFF;  -- ok
+RESET allow_system_table_mods;  -- ok
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- ok
+ALTER SYSTEM RESET allow_system_table_mods;  -- ok
+SET ignore_checksum_failure = OFF;  -- ok
+RESET ignore_checksum_failure;  -- ok
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- ok
+ALTER SYSTEM RESET ignore_checksum_failure;  -- ok
+SET zero_damaged_pages = OFF;  -- ok
+RESET zero_damaged_pages;  -- ok
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- ok
+ALTER SYSTEM RESET zero_damaged_pages;  -- ok
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_recovery_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_recovery_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_recovery_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_recovery_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_recovery_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_recovery_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_recovery_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_recovery_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_recovery_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_recovery_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_recovery_admin has insufficient privileges
+SET compute_query_id = 'auto';  -- fail, regress_recovery_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_recovery_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_recovery_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_recovery_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_recovery_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_recovery_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_recovery_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_recovery_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_recovery_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_recovery_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_recovery_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_recovery_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_recovery_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_recovery_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_recovery_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_recovery_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_recovery_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_recovery_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_recovery_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_recovery_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_recovery_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_recovery_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_recovery_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_recovery_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_recovery_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_recovery_admin has insufficient privileges
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_recovery_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_recovery_admin has insufficient privileges
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_recovery_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_recovery_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_recovery_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_recovery_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_recovery_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_recovery_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_recovery_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_recovery_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_recovery_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_recovery_admin has insufficient privileges
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_recovery_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET exit_on_error;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_recovery_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_recovery_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_recovery_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_recovery_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_recovery_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_recovery_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_recovery_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_recovery_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_recovery_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_recovery_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_recovery_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_recovery_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_recovery_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_recovery_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_recovery_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_recovery_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_recovery_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_recovery_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_recovery_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_recovery_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_recovery_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_recovery_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_recovery_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_recovery_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_recovery_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_recovery_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_recovery_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_recovery_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_recovery_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_recovery_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_recovery_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_recovery_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_recovery_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_recovery_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_recovery_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_recovery_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_recovery_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0012-Adding-role-pg_manage_error_handling_settings.patchapplication/octet-stream; name=v6-0012-Adding-role-pg_manage_error_handling_settings.patch; x-unix-mode=0644Download
From 8b24015ff78b0185da58562f0e1bd946a09e75a8 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Tue, 31 Aug 2021 17:15:54 -0700
Subject: [PATCH v6 12/19] Adding role pg_manage_error_handling_settings

This new role can SET or ALTER SYSTEM SET any GUC variable which
controls error handling settings.
---
 doc/src/sgml/user-manag.sgml                  |   13 +-
 src/backend/utils/misc/guc.c                  |    8 +-
 src/include/catalog/pg_authid.dat             |    5 +
 src/include/utils/guc.h                       |    1 +
 .../expected/error_handling_settings.out      | 1751 +++++++++++++++++
 src/test/regress/parallel_schedule            |    2 +-
 .../regress/sql/error_handling_settings.sql   | 1051 ++++++++++
 7 files changed, 2824 insertions(+), 7 deletions(-)
 create mode 100644 src/test/regress/expected/error_handling_settings.out
 create mode 100644 src/test/regress/sql/error_handling_settings.sql

diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml
index a2d6bc4cbf..5926da27dc 100644
--- a/doc/src/sgml/user-manag.sgml
+++ b/doc/src/sgml/user-manag.sgml
@@ -622,6 +622,10 @@ DROP ROLE doomed_role;
        <entry>pg_manage_recovery_settings</entry>
        <entry>Allow changing settings which control or are generally used for recovery.</entry>
       </row>
+      <row>
+       <entry>pg_manage_error_handling_settings</entry>
+       <entry>Allow changing settings which control how errors are handled.</entry>
+      </row>
      </tbody>
     </tgroup>
    </table>
@@ -674,10 +678,11 @@ DROP ROLE doomed_role;
   <literal>pg_manage_connection_settings</literal>,
   <literal>pg_manage_wal_settings</literal>,
   <literal>pg_manage_query_tuning_settings</literal>,
-  <literal>pg_manage_stats_settings</literal> and
-  <literal>pg_manage_recovery_settings</literal> roles are intended to allow
-  administrators to have trusted, but non-superuser, roles to configure the
-  server.
+  <literal>pg_manage_stats_settings</literal>,
+  <literal>pg_manage_recovery_settings</literal> and
+  <literal>pg_manage_error_handling_settings</literal> roles are intended to
+  allow administrators to have trusted, but non-superuser, roles to configure
+  the server.
   </para>
 
   <para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index f11951cc80..92db99d6b1 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1435,7 +1435,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"exit_on_error", PGC_USERSET, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Terminate session on any error."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_ERROR_HANDLING_SETTINGS
 		},
 		&ExitOnAnyError,
 		false,
@@ -2208,7 +2208,7 @@ static struct config_bool ConfigureNamesBool[] =
 		{"data_sync_retry", PGC_POSTMASTER, ERROR_HANDLING_OPTIONS,
 			gettext_noop("Whether to continue running after a failure to sync data files."),
 			NULL,
-			GUC_SUPERUSER_ONLY
+			GUC_MANAGE_ERROR_HANDLING_SETTINGS
 		},
 		&data_sync_retry,
 		false,
@@ -7648,6 +7648,10 @@ role_has_privileges(Oid roleid, int privileges)
 		! has_privs_of_role(roleid, ROLE_PG_MANAGE_RECOVERY_SETTINGS))
 		return false;
 
+	if ((privileges & GUC_MANAGE_ERROR_HANDLING_SETTINGS) &&
+		! has_privs_of_role(roleid, ROLE_PG_MANAGE_ERROR_HANDLING_SETTINGS))
+		return false;
+
 	return true;
 }
 
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
index 05ac06ccc9..88505dc6d0 100644
--- a/src/include/catalog/pg_authid.dat
+++ b/src/include/catalog/pg_authid.dat
@@ -129,5 +129,10 @@
   rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
   rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
   rolpassword => '_null_', rolvaliduntil => '_null_' },
+{ oid => '9289', oid_symbol => 'ROLE_PG_MANAGE_ERROR_HANDLING_SETTINGS',
+  rolname => 'pg_manage_error_handling_settings', rolsuper => 'f', rolinherit => 't',
+  rolcreaterole => 'f', rolcreatedb => 'f', rolcanlogin => 'f',
+  rolreplication => 'f', rolbypassrls => 't', rolconnlimit => '-1',
+  rolpassword => '_null_', rolvaliduntil => '_null_' },
 
 ]
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 522130d911..6f57f232a3 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -212,6 +212,7 @@ typedef enum
 #define GUC_MANAGE_QUERY_TUNING_SETTINGS	0x0200	/* 0x0100 = superuser */
 #define GUC_MANAGE_STATS_SETTINGS			0x0400
 #define GUC_MANAGE_RECOVERY_SETTINGS		0x0800
+#define GUC_MANAGE_ERROR_HANDLING_SETTINGS	0x1000
 
 /*
  * bit values in "flags" of a GUC variable
diff --git a/src/test/regress/expected/error_handling_settings.out b/src/test/regress/expected/error_handling_settings.out
new file mode 100644
index 0000000000..52b0f252f6
--- /dev/null
+++ b/src/test/regress/expected/error_handling_settings.out
@@ -0,0 +1,1751 @@
+-- Non-superuser with privileges to configure error handling
+CREATE ROLE regress_error_handling_admin NOSUPERUSER;
+GRANT pg_manage_error_handling_settings TO regress_error_handling_admin;
+-- Perform all operations as user 'regress_error_handling_admin' --
+SET SESSION AUTHORIZATION regress_error_handling_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_system_indexes"
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "post_auth_delay"
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_freeze_max_age"
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_max_workers"
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_multixact_freeze_max_age"
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_provider"
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_preload_libraries"
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM RESET bonjour;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour"
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bonjour_name"
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "listen_addresses"
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM RESET max_connections;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_connections"
+ALTER SYSTEM SET port = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM RESET port;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "port"
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "superuser_reserved_connections"
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_directories"
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_group"
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "unix_socket_permissions"
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_invalid_pages"
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "external_pid_file"
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_locks_per_transaction"
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_transaction"
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM RESET event_source;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "event_source"
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logging_collector"
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cluster_name"
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_replication_slots"
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_senders"
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_commit_timestamp"
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby"
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_logical_replication_workers"
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_worker_processes"
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "old_snapshot_threshold"
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_files_per_process"
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_shared_memory_type"
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "huge_pages"
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_prepared_transactions"
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_dynamic_shared_memory"
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_buffers"
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "shared_memory_type"
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activity_query_size"
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_mode"
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_action"
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_inclusive"
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_lsn"
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_name"
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_time"
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_timeline"
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_target_xid"
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_buffers"
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM RESET wal_level;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_level"
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_log_hints"
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum"
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_scale_factor"
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_analyze_threshold"
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_naptime"
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_delay"
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_cost_limit"
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_insert_threshold"
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_scale_factor"
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_vacuum_threshold"
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "authentication_timeout"
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "db_user_namespace"
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_caseins_users"
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "krb_server_keyfile"
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ca_file"
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_cert_file"
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ciphers"
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_dir"
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_crl_file"
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_dh_params_file"
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_ecdh_curve"
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_key_file"
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_min_protocol_version"
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command"
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_passphrase_command_supports_reload"
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ssl_prefer_server_ciphers"
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_recovery_messages"
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "remove_temp_files_after_crash"
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "pre_auth_delay"
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_init_sync_method"
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restart_after_crash"
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_page"
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_pred_locks_per_relation"
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_autovacuum_min_duration"
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_checkpoints"
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_hostname"
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_line_prefix"
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_recovery_conflict_waits"
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_timezone"
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM RESET log_directory;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_directory"
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_file_mode"
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM RESET log_filename;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_filename"
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_age"
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_rotation_size"
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_truncate_on_rotation"
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_ident"
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_sequence_numbers"
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "syslog_split_messages"
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_standby_names"
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_defer_cleanup_age"
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_slot_wal_keep_size"
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_keep_size"
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hot_standby_feedback"
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_archive_delay"
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_standby_streaming_delay"
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_conninfo"
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "primary_slot_name"
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "promote_trigger_file"
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_min_apply_delay"
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_create_temp_slot"
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_status_interval"
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_receiver_timeout"
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_retrieve_retry_interval"
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_sync_workers_per_subscription"
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_delay"
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_flush_after"
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_maxpages"
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bgwriter_lru_multiplier"
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "autovacuum_work_mem"
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "stats_temp_directory"
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_cleanup_command"
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "recovery_end_command"
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+ALTER SYSTEM RESET restore_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "restore_command"
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM RESET archive_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_command"
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "archive_timeout"
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_warning"
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_completion_target"
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_flush_after"
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "checkpoint_timeout"
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_wal_size"
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_wal_size"
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM RESET fsync;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "fsync"
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "full_page_writes"
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sync_method"
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_delay"
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_writer_flush_after"
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+RESET lc_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_messages"
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+RESET dynamic_library_path;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "dynamic_library_path"
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+RESET session_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_preload_libraries"
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+RESET session_replication_role;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "session_replication_role"
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+RESET lo_compat_privileges;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lo_compat_privileges"
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+RESET backtrace_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backtrace_functions"
+SET allow_system_table_mods = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+RESET allow_system_table_mods;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "allow_system_table_mods"
+SET ignore_checksum_failure = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+RESET ignore_checksum_failure;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "ignore_checksum_failure"
+SET zero_damaged_pages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+RESET zero_damaged_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "zero_damaged_pages"
+SET debug_discard_caches = 2;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+RESET debug_discard_caches;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_discard_caches"
+SET jit_dump_bitcode = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+RESET jit_dump_bitcode;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_dump_bitcode"
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+RESET wal_consistency_checking;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_consistency_checking"
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+RESET deadlock_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "deadlock_timeout"
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+RESET log_duration;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+ALTER SYSTEM RESET log_duration;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_duration"
+SET log_error_verbosity = 'default';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+RESET log_error_verbosity;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_error_verbosity"
+SET log_lock_waits = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+RESET log_lock_waits;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_lock_waits"
+SET log_parameter_max_length = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+RESET log_parameter_max_length;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length"
+SET log_replication_commands = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+RESET log_replication_commands;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_replication_commands"
+SET log_statement = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+RESET log_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+ALTER SYSTEM RESET log_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement"
+SET log_temp_files = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+RESET log_temp_files;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_temp_files"
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+RESET log_min_duration_sample;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_sample"
+SET log_min_duration_statement = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+RESET log_min_duration_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_duration_statement"
+SET log_min_error_statement = 'error';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+RESET log_min_error_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_error_statement"
+SET log_min_messages = 'warning';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+RESET log_min_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_min_messages"
+SET log_statement_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+RESET log_statement_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_sample_rate"
+SET log_transaction_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+RESET log_transaction_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_transaction_sample_rate"
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+RESET update_process_title;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "update_process_title"
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+RESET temp_file_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_file_limit"
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+RESET max_stack_depth;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_stack_depth"
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+RESET track_activities;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+ALTER SYSTEM RESET track_activities;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_activities"
+SET track_counts = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+RESET track_counts;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+ALTER SYSTEM RESET track_counts;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_counts"
+SET track_functions = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+RESET track_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+ALTER SYSTEM RESET track_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_functions"
+SET track_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+RESET track_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_io_timing"
+SET track_wal_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+RESET track_wal_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "track_wal_io_timing"
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+RESET log_executor_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_executor_stats"
+SET log_parser_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+RESET log_parser_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parser_stats"
+SET log_planner_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+RESET log_planner_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_planner_stats"
+SET log_statement_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+RESET log_statement_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_statement_stats"
+SET compute_query_id = 'auto';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+RESET compute_query_id;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "compute_query_id"
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+RESET commit_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_delay"
+SET wal_compression = 'pglz';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+RESET wal_compression;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_compression"
+SET wal_init_zero = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+RESET wal_init_zero;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_init_zero"
+SET wal_recycle = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+RESET wal_recycle;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_recycle"
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_debugging_support"
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_profiling_support"
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM RESET log_connections;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_connections"
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_disconnections"
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "datestyle"
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "intervalstyle"
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone"
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_encoding"
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_text_search_config"
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "extra_float_digits"
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_monetary"
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_numeric"
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+ALTER SYSTEM RESET lc_time;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lc_time"
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "timezone_abbreviations"
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_fuzzy_search_limit"
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "local_preload_libraries"
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_failsafe_age"
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_min_age"
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_freeze_table_age"
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_failsafe_age"
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_min_age"
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_multixact_freeze_table_age"
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "bytea_output"
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "check_function_bodies"
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_min_messages"
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_table_access_method"
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_toast_compression"
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_deferrable"
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_isolation"
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_transaction_read_only"
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "gin_pending_list_limit"
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_in_transaction_session_timeout"
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "idle_session_timeout"
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "lock_timeout"
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+ALTER SYSTEM RESET row_security;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "row_security"
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+ALTER SYSTEM RESET search_path;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "search_path"
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "statement_timeout"
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmlbinary"
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+ALTER SYSTEM RESET xmloption;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "xmloption"
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "escape_string_warning"
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "array_nulls"
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "quote_all_identifiers"
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "standard_conforming_strings"
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronize_seqscans"
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "password_encryption"
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "client_connection_check_interval"
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_count"
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_idle"
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_keepalives_interval"
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "tcp_user_timeout"
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_notify"
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "trace_sort"
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "force_parallel_mode"
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_expressions"
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_tuple_deforming"
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+ALTER SYSTEM RESET application_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "application_name"
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_pretty_print"
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_parse"
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_plan"
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "debug_print_rewritten"
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "log_parameter_max_length_on_error"
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_index_tuple_cost"
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_operator_cost"
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cpu_tuple_cost"
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_cache_size"
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_above_cost"
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_inline_above_cost"
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit_optimize_above_cost"
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_index_scan_size"
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "min_parallel_table_scan_size"
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_setup_cost"
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_tuple_cost"
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "random_page_cost"
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "seq_page_cost"
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+ALTER SYSTEM RESET geqo;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo"
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_effort"
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_generations"
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_pool_size"
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_seed"
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_selection_bias"
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "geqo_threshold"
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_async_append"
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_bitmapscan"
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_gathermerge"
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashagg"
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_hashjoin"
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_incremental_sort"
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexonlyscan"
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_indexscan"
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+ALTER SYSTEM RESET enable_material;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_material"
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_memoize"
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_mergejoin"
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_nestloop"
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_append"
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_parallel_hash"
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partition_pruning"
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_aggregate"
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_partitionwise_join"
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_seqscan"
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_sort"
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "enable_tidscan"
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "constraint_exclusion"
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "cursor_tuple_fraction"
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "default_statistics_target"
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "from_collapse_limit"
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+ALTER SYSTEM RESET jit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "jit"
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "join_collapse_limit"
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "plan_cache_mode"
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_sender_timeout"
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "backend_flush_after"
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_maintenance_workers"
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers"
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "max_parallel_workers_per_gather"
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "effective_io_concurrency"
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_io_concurrency"
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "parallel_leader_participation"
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "hash_mem_multiplier"
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "logical_decoding_work_mem"
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "maintenance_work_mem"
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "temp_buffers"
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+ALTER SYSTEM RESET work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "work_mem"
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_delay"
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_limit"
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_dirty"
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_hit"
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "vacuum_cost_page_miss"
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "commit_siblings"
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "synchronous_commit"
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ERROR:  permission denied to set parameter "wal_skip_threshold"
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_error_handling_admin;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index f193411a82..f33d07a0d2 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -91,7 +91,7 @@ test: create_table_like alter_generic alter_operator misc async dbsize misc_func
 # ----------
 # Another group of parallel tests (GUC management roles related)
 # ----------
-test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings query_tuning_settings stats_settings recovery_settings
+test: admin host_resource_settings vacuum_settings autovacuum_settings logging_settings replication_settings connection_settings wal_settings query_tuning_settings stats_settings recovery_settings error_handling_settings
 
 # rules cannot run concurrently with any test that creates
 # a view or rule in the public schema
diff --git a/src/test/regress/sql/error_handling_settings.sql b/src/test/regress/sql/error_handling_settings.sql
new file mode 100644
index 0000000000..5913a54ad9
--- /dev/null
+++ b/src/test/regress/sql/error_handling_settings.sql
@@ -0,0 +1,1051 @@
+-- Non-superuser with privileges to configure error handling
+CREATE ROLE regress_error_handling_admin NOSUPERUSER;
+GRANT pg_manage_error_handling_settings TO regress_error_handling_admin;
+-- Perform all operations as user 'regress_error_handling_admin' --
+SET SESSION AUTHORIZATION regress_error_handling_admin;
+-- PGC_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_system_indexes = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_system_indexes;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET post_auth_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET post_auth_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_INTERNAL / PRESET_OPTIONS
+-- PGC_INTERNAL / UNGROUPED
+-- PGC_POSTMASTER / AUTOVACUUM
+ALTER SYSTEM SET autovacuum_freeze_max_age = 1000050000;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_freeze_max_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_max_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_max_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_multixact_freeze_max_age = 1000005000;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_multixact_freeze_max_age;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / CLIENT_CONN_PRELOAD
+ALTER SYSTEM SET jit_provider = 'llvmjit';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_provider;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET shared_preload_libraries = 'iconv, pcre';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET shared_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / CONN_AUTH_SETTINGS
+ALTER SYSTEM SET bonjour = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET bonjour_name = 'BonneNuit';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET bonjour_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET listen_addresses = 'localhost';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET listen_addresses;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_connections = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_connections;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET port = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET port;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET superuser_reserved_connections = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET superuser_reserved_connections;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_directories = '/tmp';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_directories;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_group = 'tenant';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_group;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET unix_socket_permissions = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET unix_socket_permissions;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / DEVELOPER_OPTIONS
+ALTER SYSTEM SET ignore_invalid_pages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_invalid_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET data_sync_retry = OFF;  -- ok
+ALTER SYSTEM RESET data_sync_retry;  -- ok
+-- PGC_POSTMASTER / FILE_LOCATIONS
+ALTER SYSTEM SET external_pid_file = '/var/postgres/master.pid';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET external_pid_file;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_locks_per_transaction = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_locks_per_transaction;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_transaction = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_transaction;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / LOGGING_WHERE
+ALTER SYSTEM SET event_source = 'PostgreSQL';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET event_source;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET logging_collector = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET logging_collector;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / PROCESS_TITLE
+ALTER SYSTEM SET cluster_name = 'BonCluster';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET cluster_name;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SENDING
+ALTER SYSTEM SET max_replication_slots = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_replication_slots;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_senders = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_senders;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET track_commit_timestamp = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET track_commit_timestamp;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_logical_replication_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_logical_replication_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_ASYNCHRONOUS
+ALTER SYSTEM SET max_worker_processes = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_worker_processes;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET old_snapshot_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET old_snapshot_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_KERNEL
+ALTER SYSTEM SET max_files_per_process = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_files_per_process;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / RESOURCES_MEM
+ALTER SYSTEM SET dynamic_shared_memory_type = 'posix';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_shared_memory_type;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET huge_pages = 'try';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET huge_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_prepared_transactions = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_prepared_transactions;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET min_dynamic_shared_memory = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET min_dynamic_shared_memory;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET shared_buffers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET shared_buffers;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET shared_memory_type = 'mmap';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET shared_memory_type;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / STATS_COLLECTOR
+ALTER SYSTEM SET track_activity_query_size = 524338;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET track_activity_query_size;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_ARCHIVING
+ALTER SYSTEM SET archive_mode = 'off';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET archive_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_RECOVERY_TARGET
+ALTER SYSTEM SET recovery_target_action = 'pause';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_action;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_inclusive = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_inclusive;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_lsn = '16/B374D848';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_lsn;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_name = 'BonPoint';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_time = '2001-02-03 04:05:06.789 Europe/Helsinki';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_time;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_timeline = 'latest';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_timeline;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_target_xid = '12345678';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_target_xid;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_POSTMASTER / WAL_SETTINGS
+ALTER SYSTEM SET wal_buffers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_buffers;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_level = 'replica';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_level;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_log_hints = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_log_hints;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / AUTOVACUUM
+ALTER SYSTEM SET autovacuum = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_scale_factor = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_scale_factor;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_analyze_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_analyze_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_naptime = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_naptime;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_cost_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_cost_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_scale_factor = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_scale_factor;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_insert_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_insert_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_scale_factor;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_vacuum_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_AUTH
+ALTER SYSTEM SET authentication_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET authentication_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET db_user_namespace = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET db_user_namespace;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET krb_caseins_users = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET krb_caseins_users;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET krb_server_keyfile = 'krb/server.key';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET krb_server_keyfile;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / CONN_AUTH_SSL
+ALTER SYSTEM SET ssl_ca_file = 'ca/server.ca';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ca_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_cert_file = 'crt/server.crt';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_cert_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ciphers = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ciphers;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_dir = 'crl/';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_dir;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_crl_file = 'crl/server.crl';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_crl_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_dh_params_file = 'ssl/params';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_dh_params_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_ecdh_curve = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_ecdh_curve;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_key_file = 'crl/server.key';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_key_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.2';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_min_protocol_version;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command = '/bin/passphrase';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_passphrase_command_supports_reload = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_passphrase_command_supports_reload;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ssl_prefer_server_ciphers = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ssl_prefer_server_ciphers;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / DEVELOPER_OPTIONS
+ALTER SYSTEM SET trace_recovery_messages = 'log';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET trace_recovery_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET remove_temp_files_after_crash = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET remove_temp_files_after_crash;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET pre_auth_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET pre_auth_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / ERROR_HANDLING_OPTIONS
+ALTER SYSTEM SET recovery_init_sync_method = 'fsync';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_init_sync_method;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET restart_after_crash = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET restart_after_crash;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / LOCK_MANAGEMENT
+ALTER SYSTEM SET max_pred_locks_per_page = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_page;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_pred_locks_per_relation = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_pred_locks_per_relation;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHAT
+ALTER SYSTEM SET log_autovacuum_min_duration = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_autovacuum_min_duration;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_checkpoints = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_checkpoints;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_hostname = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_hostname;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_line_prefix = '%m [%p] ';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_line_prefix;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_recovery_conflict_waits = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_recovery_conflict_waits;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_timezone = 'Europe/Helsinki';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_timezone;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / LOGGING_WHERE
+ALTER SYSTEM SET log_directory = 'log';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_directory;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_file_mode = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_file_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_filename;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_age;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_rotation_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_rotation_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_truncate_on_rotation = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_truncate_on_rotation;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET syslog_ident = 'postgres';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_ident;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET syslog_sequence_numbers = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_sequence_numbers;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET syslog_split_messages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET syslog_split_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_PRIMARY
+ALTER SYSTEM SET synchronous_standby_names = 'fee, fi, fo, fum';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_standby_names;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET vacuum_defer_cleanup_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_defer_cleanup_age;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SENDING
+ALTER SYSTEM SET max_slot_wal_keep_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_slot_wal_keep_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_keep_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_keep_size;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_STANDBY
+ALTER SYSTEM SET hot_standby_feedback = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET hot_standby_feedback;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_archive_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_archive_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_standby_streaming_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_standby_streaming_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET primary_conninfo = 'postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET primary_conninfo;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET primary_slot_name = 'bonne_fente';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET primary_slot_name;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET promote_trigger_file = 'promote.trigger';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET promote_trigger_file;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_min_apply_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_min_apply_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_create_temp_slot = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_create_temp_slot;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_status_interval = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_status_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_receiver_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_receiver_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_retrieve_retry_interval = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_retrieve_retry_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / REPLICATION_SUBSCRIBERS
+ALTER SYSTEM SET max_sync_workers_per_subscription = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_sync_workers_per_subscription;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_BGWRITER
+ALTER SYSTEM SET bgwriter_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_flush_after = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_maxpages = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_maxpages;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET bgwriter_lru_multiplier = 5;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET bgwriter_lru_multiplier;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / RESOURCES_MEM
+ALTER SYSTEM SET autovacuum_work_mem = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET autovacuum_work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / STATS_COLLECTOR
+ALTER SYSTEM SET stats_temp_directory = 'pg_stat_tmp';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET stats_temp_directory;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVE_RECOVERY
+ALTER SYSTEM SET archive_cleanup_command = '/bin/cleanup my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET archive_cleanup_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET recovery_end_command = '/bin/recover my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET recovery_end_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET restore_command = '/bin/restore my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET restore_command;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_ARCHIVING
+ALTER SYSTEM SET archive_command = '/bin/archive my stuff';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET archive_command;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET archive_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET archive_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_CHECKPOINTS
+ALTER SYSTEM SET checkpoint_warning = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_warning;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_completion_target = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_completion_target;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_flush_after = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET checkpoint_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET checkpoint_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_wal_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_wal_size;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET min_wal_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET min_wal_size;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SIGHUP / WAL_SETTINGS
+ALTER SYSTEM SET fsync = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET fsync;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET full_page_writes = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET full_page_writes;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_sync_method = 'open_datasync';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sync_method;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_writer_flush_after = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_writer_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_LOCALE
+SET lc_messages = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET lc_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET lc_messages = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET lc_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_OTHER
+SET dynamic_library_path = '$libdir';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET dynamic_library_path;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET dynamic_library_path = '$libdir';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET dynamic_library_path;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_PRELOAD
+SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET session_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET session_preload_libraries = 'gssapi_krb5';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET session_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / CLIENT_CONN_STATEMENT
+SET session_replication_role = 'origin';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET session_replication_role;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET session_replication_role = 'origin';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET session_replication_role;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / COMPAT_OPTIONS_PREVIOUS
+SET lo_compat_privileges = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET lo_compat_privileges;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET lo_compat_privileges = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET lo_compat_privileges;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / DEVELOPER_OPTIONS
+SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET backtrace_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET backtrace_functions = 'partition_list_bsearch,partition_range_datum_bsearch,partition_hash_bsearch';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET backtrace_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+SET allow_system_table_mods = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET allow_system_table_mods;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET allow_system_table_mods = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET allow_system_table_mods;  -- fail, regress_error_handling_admin has insufficient privileges
+SET ignore_checksum_failure = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET ignore_checksum_failure;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET ignore_checksum_failure = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET ignore_checksum_failure;  -- fail, regress_error_handling_admin has insufficient privileges
+SET zero_damaged_pages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET zero_damaged_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET zero_damaged_pages = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET zero_damaged_pages;  -- fail, regress_error_handling_admin has insufficient privileges
+SET debug_discard_caches = 2;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET debug_discard_caches;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET debug_discard_caches = 2;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET debug_discard_caches;  -- fail, regress_error_handling_admin has insufficient privileges
+SET jit_dump_bitcode = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET jit_dump_bitcode;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET jit_dump_bitcode = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_dump_bitcode;  -- fail, regress_error_handling_admin has insufficient privileges
+SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET wal_consistency_checking;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_consistency_checking = 'heap, heap2, btree, hash, gin, gist, sequence, spgist, brin, generic';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_consistency_checking;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / LOCK_MANAGEMENT
+SET deadlock_timeout = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET deadlock_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET deadlock_timeout = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET deadlock_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHAT
+SET log_duration = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_duration;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_duration = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_duration;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_error_verbosity = 'default';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_error_verbosity;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_error_verbosity = 'default';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_error_verbosity;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_lock_waits = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_lock_waits;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_lock_waits = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_lock_waits;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_parameter_max_length = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_parameter_max_length;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_parameter_max_length = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_replication_commands = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_replication_commands;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_replication_commands = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_replication_commands;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_statement = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_statement = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_temp_files = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_temp_files;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_temp_files = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_temp_files;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / LOGGING_WHEN
+SET log_min_duration_sample = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_min_duration_sample;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_sample = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_sample;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_min_duration_statement = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_min_duration_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_min_duration_statement = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_duration_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_min_error_statement = 'error';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_min_error_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_min_error_statement = 'error';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_error_statement;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_min_messages = 'warning';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_min_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_min_messages = 'warning';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_min_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_statement_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_statement_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_transaction_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_transaction_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_transaction_sample_rate = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_transaction_sample_rate;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / PROCESS_TITLE
+SET update_process_title = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET update_process_title;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET update_process_title = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET update_process_title;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_DISK
+SET temp_file_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET temp_file_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET temp_file_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET temp_file_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / RESOURCES_MEM
+SET max_stack_depth = 3890;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET max_stack_depth;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET max_stack_depth = 3890;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_stack_depth;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / STATS_COLLECTOR
+SET track_activities = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET track_activities;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET track_activities = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET track_activities;  -- fail, regress_error_handling_admin has insufficient privileges
+SET track_counts = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET track_counts;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET track_counts = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET track_counts;  -- fail, regress_error_handling_admin has insufficient privileges
+SET track_functions = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET track_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET track_functions = 'none';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET track_functions;  -- fail, regress_error_handling_admin has insufficient privileges
+SET track_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET track_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET track_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET track_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+SET track_wal_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET track_wal_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET track_wal_io_timing = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET track_wal_io_timing;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / STATS_MONITORING
+SET log_executor_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_executor_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_executor_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_executor_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_parser_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_parser_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_parser_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_parser_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_planner_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_planner_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_planner_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_planner_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_statement_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET log_statement_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_statement_stats = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_statement_stats;  -- fail, regress_error_handling_admin has insufficient privileges
+SET compute_query_id = 'auto';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET compute_query_id;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET compute_query_id = 'auto';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET compute_query_id;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SUSET / WAL_SETTINGS
+SET commit_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET commit_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET commit_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET commit_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+SET wal_compression = 'pglz';  -- fail, regress_error_handling_admin has insufficient privileges
+RESET wal_compression;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_compression = 'pglz';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_compression;  -- fail, regress_error_handling_admin has insufficient privileges
+SET wal_init_zero = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET wal_init_zero;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_init_zero = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_init_zero;  -- fail, regress_error_handling_admin has insufficient privileges
+SET wal_recycle = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET wal_recycle;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET wal_recycle = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_recycle;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SU_BACKEND / DEVELOPER_OPTIONS
+ALTER SYSTEM SET jit_debugging_support = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_debugging_support;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET jit_profiling_support = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_profiling_support;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_SU_BACKEND / LOGGING_WHAT
+ALTER SYSTEM SET log_connections = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_connections;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM SET log_disconnections = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_disconnections;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_LOCALE
+SET DateStyle = 'ISO, MDY';  -- ok
+RESET DateStyle;  -- ok
+ALTER SYSTEM SET DateStyle = 'ISO, MDY';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET DateStyle;  -- fail, regress_error_handling_admin has insufficient privileges
+SET IntervalStyle = 'postgres';  -- ok
+RESET IntervalStyle;  -- ok
+ALTER SYSTEM SET IntervalStyle = 'postgres';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET IntervalStyle;  -- fail, regress_error_handling_admin has insufficient privileges
+SET TimeZone = 'Europe/Helsinki';  -- ok
+RESET TimeZone;  -- ok
+ALTER SYSTEM SET TimeZone = 'Europe/Helsinki';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET TimeZone;  -- fail, regress_error_handling_admin has insufficient privileges
+SET client_encoding = 'UTF8';  -- ok
+RESET client_encoding;  -- ok
+ALTER SYSTEM SET client_encoding = 'UTF8';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET client_encoding;  -- fail, regress_error_handling_admin has insufficient privileges
+SET default_text_search_config = 'pg_catalog.english';  -- ok
+RESET default_text_search_config;  -- ok
+ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET default_text_search_config;  -- fail, regress_error_handling_admin has insufficient privileges
+SET extra_float_digits = -6;  -- ok
+RESET extra_float_digits;  -- ok
+ALTER SYSTEM SET extra_float_digits = -6;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET extra_float_digits;  -- fail, regress_error_handling_admin has insufficient privileges
+SET lc_monetary = 'en_US.UTF-8';  -- ok
+RESET lc_monetary;  -- ok
+ALTER SYSTEM SET lc_monetary = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET lc_monetary;  -- fail, regress_error_handling_admin has insufficient privileges
+SET lc_numeric = 'en_US.UTF-8';  -- ok
+RESET lc_numeric;  -- ok
+ALTER SYSTEM SET lc_numeric = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET lc_numeric;  -- fail, regress_error_handling_admin has insufficient privileges
+SET lc_time = 'en_US.UTF-8';  -- ok
+RESET lc_time;  -- ok
+ALTER SYSTEM SET lc_time = 'en_US.UTF-8';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET lc_time;  -- fail, regress_error_handling_admin has insufficient privileges
+SET timezone_abbreviations = 'Default';  -- ok
+RESET timezone_abbreviations;  -- ok
+ALTER SYSTEM SET timezone_abbreviations = 'Default';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET timezone_abbreviations;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_OTHER
+SET gin_fuzzy_search_limit = 50;  -- ok
+RESET gin_fuzzy_search_limit;  -- ok
+ALTER SYSTEM SET gin_fuzzy_search_limit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET gin_fuzzy_search_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_PRELOAD
+SET local_preload_libraries = 'gssapi_krb5';  -- ok
+RESET local_preload_libraries;  -- ok
+ALTER SYSTEM SET local_preload_libraries = 'gssapi_krb5';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET local_preload_libraries;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / CLIENT_CONN_STATEMENT
+SET vacuum_failsafe_age = 50;  -- ok
+RESET vacuum_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_failsafe_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_failsafe_age;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_freeze_min_age = 50;  -- ok
+RESET vacuum_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_min_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_min_age;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_freeze_table_age = 50;  -- ok
+RESET vacuum_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_freeze_table_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_freeze_table_age;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_multixact_failsafe_age = 50;  -- ok
+RESET vacuum_multixact_failsafe_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_failsafe_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_failsafe_age;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_multixact_freeze_min_age = 50;  -- ok
+RESET vacuum_multixact_freeze_min_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_min_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_min_age;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_multixact_freeze_table_age = 50;  -- ok
+RESET vacuum_multixact_freeze_table_age;  -- ok
+ALTER SYSTEM SET vacuum_multixact_freeze_table_age = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_multixact_freeze_table_age;  -- fail, regress_error_handling_admin has insufficient privileges
+SET bytea_output = 'hex';  -- ok
+RESET bytea_output;  -- ok
+ALTER SYSTEM SET bytea_output = 'hex';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET bytea_output;  -- fail, regress_error_handling_admin has insufficient privileges
+SET check_function_bodies = OFF;  -- ok
+RESET check_function_bodies;  -- ok
+ALTER SYSTEM SET check_function_bodies = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET check_function_bodies;  -- fail, regress_error_handling_admin has insufficient privileges
+SET client_min_messages = 'notice';  -- ok
+RESET client_min_messages;  -- ok
+ALTER SYSTEM SET client_min_messages = 'notice';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET client_min_messages;  -- fail, regress_error_handling_admin has insufficient privileges
+SET default_table_access_method = 'heap';  -- ok
+RESET default_table_access_method;  -- ok
+ALTER SYSTEM SET default_table_access_method = 'heap';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET default_table_access_method;  -- fail, regress_error_handling_admin has insufficient privileges
+SET default_toast_compression = 'pglz';  -- ok
+RESET default_toast_compression;  -- ok
+ALTER SYSTEM SET default_toast_compression = 'pglz';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET default_toast_compression;  -- fail, regress_error_handling_admin has insufficient privileges
+SET default_transaction_deferrable = OFF;  -- ok
+RESET default_transaction_deferrable;  -- ok
+ALTER SYSTEM SET default_transaction_deferrable = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_deferrable;  -- fail, regress_error_handling_admin has insufficient privileges
+SET default_transaction_isolation = 'read committed';  -- ok
+RESET default_transaction_isolation;  -- ok
+ALTER SYSTEM SET default_transaction_isolation = 'read committed';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_isolation;  -- fail, regress_error_handling_admin has insufficient privileges
+SET default_transaction_read_only = OFF;  -- ok
+RESET default_transaction_read_only;  -- ok
+ALTER SYSTEM SET default_transaction_read_only = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET default_transaction_read_only;  -- fail, regress_error_handling_admin has insufficient privileges
+SET gin_pending_list_limit = 1073741855;  -- ok
+RESET gin_pending_list_limit;  -- ok
+ALTER SYSTEM SET gin_pending_list_limit = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET gin_pending_list_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+SET idle_in_transaction_session_timeout = 50;  -- ok
+RESET idle_in_transaction_session_timeout;  -- ok
+ALTER SYSTEM SET idle_in_transaction_session_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET idle_in_transaction_session_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+SET idle_session_timeout = 50;  -- ok
+RESET idle_session_timeout;  -- ok
+ALTER SYSTEM SET idle_session_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET idle_session_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+SET lock_timeout = 50;  -- ok
+RESET lock_timeout;  -- ok
+ALTER SYSTEM SET lock_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET lock_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+SET row_security = OFF;  -- ok
+RESET row_security;  -- ok
+ALTER SYSTEM SET row_security = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET row_security;  -- fail, regress_error_handling_admin has insufficient privileges
+SET search_path = '"$user", public';  -- ok
+RESET search_path;  -- ok
+ALTER SYSTEM SET search_path = '"$user", public';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET search_path;  -- fail, regress_error_handling_admin has insufficient privileges
+SET statement_timeout = 5250;  -- ok
+RESET statement_timeout;  -- ok
+ALTER SYSTEM SET statement_timeout = 5250;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET statement_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+SET transaction_deferrable = OFF;  -- ok
+RESET transaction_deferrable;  -- ok
+SET transaction_read_only = OFF;  -- ok
+RESET transaction_read_only;  -- ok
+SET xmlbinary = 'base64';  -- ok
+RESET xmlbinary;  -- ok
+ALTER SYSTEM SET xmlbinary = 'base64';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET xmlbinary;  -- fail, regress_error_handling_admin has insufficient privileges
+SET xmloption = 'content';  -- ok
+RESET xmloption;  -- ok
+ALTER SYSTEM SET xmloption = 'content';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET xmloption;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / COMPAT_OPTIONS_PREVIOUS
+SET escape_string_warning = OFF;  -- ok
+RESET escape_string_warning;  -- ok
+ALTER SYSTEM SET escape_string_warning = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET escape_string_warning;  -- fail, regress_error_handling_admin has insufficient privileges
+SET array_nulls = OFF;  -- ok
+RESET array_nulls;  -- ok
+ALTER SYSTEM SET array_nulls = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET array_nulls;  -- fail, regress_error_handling_admin has insufficient privileges
+SET quote_all_identifiers = OFF;  -- ok
+RESET quote_all_identifiers;  -- ok
+ALTER SYSTEM SET quote_all_identifiers = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET quote_all_identifiers;  -- fail, regress_error_handling_admin has insufficient privileges
+SET standard_conforming_strings = OFF;  -- ok
+RESET standard_conforming_strings;  -- ok
+ALTER SYSTEM SET standard_conforming_strings = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET standard_conforming_strings;  -- fail, regress_error_handling_admin has insufficient privileges
+SET synchronize_seqscans = OFF;  -- ok
+RESET synchronize_seqscans;  -- ok
+ALTER SYSTEM SET synchronize_seqscans = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET synchronize_seqscans;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_AUTH
+SET password_encryption = 'scram-sha-256';  -- ok
+RESET password_encryption;  -- ok
+ALTER SYSTEM SET password_encryption = 'scram-sha-256';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET password_encryption;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SETTINGS
+SET client_connection_check_interval = 0;  -- ok
+RESET client_connection_check_interval;  -- ok
+ALTER SYSTEM SET client_connection_check_interval = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET client_connection_check_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+SET tcp_keepalives_count = 50;  -- ok
+RESET tcp_keepalives_count;  -- ok
+ALTER SYSTEM SET tcp_keepalives_count = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_count;  -- fail, regress_error_handling_admin has insufficient privileges
+SET tcp_keepalives_idle = 50;  -- ok
+RESET tcp_keepalives_idle;  -- ok
+ALTER SYSTEM SET tcp_keepalives_idle = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_idle;  -- fail, regress_error_handling_admin has insufficient privileges
+SET tcp_keepalives_interval = 50;  -- ok
+RESET tcp_keepalives_interval;  -- ok
+ALTER SYSTEM SET tcp_keepalives_interval = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_keepalives_interval;  -- fail, regress_error_handling_admin has insufficient privileges
+SET tcp_user_timeout = 50;  -- ok
+RESET tcp_user_timeout;  -- ok
+ALTER SYSTEM SET tcp_user_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET tcp_user_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / CONN_AUTH_SSL
+SET ssl_renegotiation_limit = 0;  -- ok
+RESET ssl_renegotiation_limit;  -- ok
+-- PGC_USERSET / DEVELOPER_OPTIONS
+SET trace_notify = OFF;  -- ok
+RESET trace_notify;  -- ok
+ALTER SYSTEM SET trace_notify = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET trace_notify;  -- fail, regress_error_handling_admin has insufficient privileges
+SET trace_sort = OFF;  -- ok
+RESET trace_sort;  -- ok
+ALTER SYSTEM SET trace_sort = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET trace_sort;  -- fail, regress_error_handling_admin has insufficient privileges
+SET force_parallel_mode = 'off';  -- ok
+RESET force_parallel_mode;  -- ok
+ALTER SYSTEM SET force_parallel_mode = 'off';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET force_parallel_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+SET jit_expressions = OFF;  -- ok
+RESET jit_expressions;  -- ok
+ALTER SYSTEM SET jit_expressions = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_expressions;  -- fail, regress_error_handling_admin has insufficient privileges
+SET jit_tuple_deforming = OFF;  -- ok
+RESET jit_tuple_deforming;  -- ok
+ALTER SYSTEM SET jit_tuple_deforming = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_tuple_deforming;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / ERROR_HANDLING_OPTIONS
+SET exit_on_error = OFF;  -- ok
+RESET exit_on_error;  -- ok
+ALTER SYSTEM SET exit_on_error = OFF;  -- ok
+ALTER SYSTEM RESET exit_on_error;  -- ok
+-- PGC_USERSET / LOGGING_WHAT
+SET application_name = 'psql';  -- ok
+RESET application_name;  -- ok
+ALTER SYSTEM SET application_name = 'psql';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET application_name;  -- fail, regress_error_handling_admin has insufficient privileges
+SET debug_pretty_print = OFF;  -- ok
+RESET debug_pretty_print;  -- ok
+ALTER SYSTEM SET debug_pretty_print = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET debug_pretty_print;  -- fail, regress_error_handling_admin has insufficient privileges
+SET debug_print_parse = OFF;  -- ok
+RESET debug_print_parse;  -- ok
+ALTER SYSTEM SET debug_print_parse = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_parse;  -- fail, regress_error_handling_admin has insufficient privileges
+SET debug_print_plan = OFF;  -- ok
+RESET debug_print_plan;  -- ok
+ALTER SYSTEM SET debug_print_plan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_plan;  -- fail, regress_error_handling_admin has insufficient privileges
+SET debug_print_rewritten = OFF;  -- ok
+RESET debug_print_rewritten;  -- ok
+ALTER SYSTEM SET debug_print_rewritten = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET debug_print_rewritten;  -- fail, regress_error_handling_admin has insufficient privileges
+SET log_parameter_max_length_on_error = 50;  -- ok
+RESET log_parameter_max_length_on_error;  -- ok
+ALTER SYSTEM SET log_parameter_max_length_on_error = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET log_parameter_max_length_on_error;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_COST
+SET cpu_index_tuple_cost = 50;  -- ok
+RESET cpu_index_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_index_tuple_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_index_tuple_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET cpu_operator_cost = 50;  -- ok
+RESET cpu_operator_cost;  -- ok
+ALTER SYSTEM SET cpu_operator_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_operator_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET cpu_tuple_cost = 50;  -- ok
+RESET cpu_tuple_cost;  -- ok
+ALTER SYSTEM SET cpu_tuple_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET cpu_tuple_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET effective_cache_size = 1073741824;  -- ok
+RESET effective_cache_size;  -- ok
+ALTER SYSTEM SET effective_cache_size = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET effective_cache_size;  -- fail, regress_error_handling_admin has insufficient privileges
+SET jit_above_cost = 50;  -- ok
+RESET jit_above_cost;  -- ok
+ALTER SYSTEM SET jit_above_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_above_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET jit_inline_above_cost = 50;  -- ok
+RESET jit_inline_above_cost;  -- ok
+ALTER SYSTEM SET jit_inline_above_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_inline_above_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET jit_optimize_above_cost = 50;  -- ok
+RESET jit_optimize_above_cost;  -- ok
+ALTER SYSTEM SET jit_optimize_above_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit_optimize_above_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET min_parallel_index_scan_size = 50;  -- ok
+RESET min_parallel_index_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_index_scan_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_index_scan_size;  -- fail, regress_error_handling_admin has insufficient privileges
+SET min_parallel_table_scan_size = 50;  -- ok
+RESET min_parallel_table_scan_size;  -- ok
+ALTER SYSTEM SET min_parallel_table_scan_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET min_parallel_table_scan_size;  -- fail, regress_error_handling_admin has insufficient privileges
+SET parallel_setup_cost = 50;  -- ok
+RESET parallel_setup_cost;  -- ok
+ALTER SYSTEM SET parallel_setup_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_setup_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET parallel_tuple_cost = 50;  -- ok
+RESET parallel_tuple_cost;  -- ok
+ALTER SYSTEM SET parallel_tuple_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_tuple_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET random_page_cost = 50;  -- ok
+RESET random_page_cost;  -- ok
+ALTER SYSTEM SET random_page_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET random_page_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+SET seq_page_cost = 50;  -- ok
+RESET seq_page_cost;  -- ok
+ALTER SYSTEM SET seq_page_cost = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET seq_page_cost;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_GEQO
+SET geqo = OFF;  -- ok
+RESET geqo;  -- ok
+ALTER SYSTEM SET geqo = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET geqo;  -- fail, regress_error_handling_admin has insufficient privileges
+SET geqo_effort = 5;  -- ok
+RESET geqo_effort;  -- ok
+ALTER SYSTEM SET geqo_effort = 5;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_effort;  -- fail, regress_error_handling_admin has insufficient privileges
+SET geqo_generations = 50;  -- ok
+RESET geqo_generations;  -- ok
+ALTER SYSTEM SET geqo_generations = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_generations;  -- fail, regress_error_handling_admin has insufficient privileges
+SET geqo_pool_size = 50;  -- ok
+RESET geqo_pool_size;  -- ok
+ALTER SYSTEM SET geqo_pool_size = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_pool_size;  -- fail, regress_error_handling_admin has insufficient privileges
+SET geqo_seed = 0;  -- ok
+RESET geqo_seed;  -- ok
+ALTER SYSTEM SET geqo_seed = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_seed;  -- fail, regress_error_handling_admin has insufficient privileges
+SET geqo_selection_bias = 2;  -- ok
+RESET geqo_selection_bias;  -- ok
+ALTER SYSTEM SET geqo_selection_bias = 2;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_selection_bias;  -- fail, regress_error_handling_admin has insufficient privileges
+SET geqo_threshold = 1073741824;  -- ok
+RESET geqo_threshold;  -- ok
+ALTER SYSTEM SET geqo_threshold = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET geqo_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_METHOD
+SET enable_async_append = OFF;  -- ok
+RESET enable_async_append;  -- ok
+ALTER SYSTEM SET enable_async_append = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_async_append;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_bitmapscan = OFF;  -- ok
+RESET enable_bitmapscan;  -- ok
+ALTER SYSTEM SET enable_bitmapscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_bitmapscan;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_gathermerge = OFF;  -- ok
+RESET enable_gathermerge;  -- ok
+ALTER SYSTEM SET enable_gathermerge = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_gathermerge;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_hashagg = OFF;  -- ok
+RESET enable_hashagg;  -- ok
+ALTER SYSTEM SET enable_hashagg = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashagg;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_hashjoin = OFF;  -- ok
+RESET enable_hashjoin;  -- ok
+ALTER SYSTEM SET enable_hashjoin = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_hashjoin;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_incremental_sort = OFF;  -- ok
+RESET enable_incremental_sort;  -- ok
+ALTER SYSTEM SET enable_incremental_sort = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_incremental_sort;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_indexonlyscan = OFF;  -- ok
+RESET enable_indexonlyscan;  -- ok
+ALTER SYSTEM SET enable_indexonlyscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexonlyscan;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_indexscan = OFF;  -- ok
+RESET enable_indexscan;  -- ok
+ALTER SYSTEM SET enable_indexscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_indexscan;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_material = OFF;  -- ok
+RESET enable_material;  -- ok
+ALTER SYSTEM SET enable_material = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_material;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_memoize = OFF;  -- ok
+RESET enable_memoize;  -- ok
+ALTER SYSTEM SET enable_memoize = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_memoize;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_mergejoin = OFF;  -- ok
+RESET enable_mergejoin;  -- ok
+ALTER SYSTEM SET enable_mergejoin = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_mergejoin;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_nestloop = OFF;  -- ok
+RESET enable_nestloop;  -- ok
+ALTER SYSTEM SET enable_nestloop = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_nestloop;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_parallel_append = OFF;  -- ok
+RESET enable_parallel_append;  -- ok
+ALTER SYSTEM SET enable_parallel_append = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_append;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_parallel_hash = OFF;  -- ok
+RESET enable_parallel_hash;  -- ok
+ALTER SYSTEM SET enable_parallel_hash = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_parallel_hash;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_partition_pruning = OFF;  -- ok
+RESET enable_partition_pruning;  -- ok
+ALTER SYSTEM SET enable_partition_pruning = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partition_pruning;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_partitionwise_aggregate = OFF;  -- ok
+RESET enable_partitionwise_aggregate;  -- ok
+ALTER SYSTEM SET enable_partitionwise_aggregate = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_aggregate;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_partitionwise_join = OFF;  -- ok
+RESET enable_partitionwise_join;  -- ok
+ALTER SYSTEM SET enable_partitionwise_join = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_partitionwise_join;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_seqscan = OFF;  -- ok
+RESET enable_seqscan;  -- ok
+ALTER SYSTEM SET enable_seqscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_seqscan;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_sort = OFF;  -- ok
+RESET enable_sort;  -- ok
+ALTER SYSTEM SET enable_sort = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_sort;  -- fail, regress_error_handling_admin has insufficient privileges
+SET enable_tidscan = OFF;  -- ok
+RESET enable_tidscan;  -- ok
+ALTER SYSTEM SET enable_tidscan = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET enable_tidscan;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / QUERY_TUNING_OTHER
+SET constraint_exclusion = 'partition';  -- ok
+RESET constraint_exclusion;  -- ok
+ALTER SYSTEM SET constraint_exclusion = 'partition';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET constraint_exclusion;  -- fail, regress_error_handling_admin has insufficient privileges
+SET cursor_tuple_fraction = 0;  -- ok
+RESET cursor_tuple_fraction;  -- ok
+ALTER SYSTEM SET cursor_tuple_fraction = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET cursor_tuple_fraction;  -- fail, regress_error_handling_admin has insufficient privileges
+SET default_statistics_target = 5000;  -- ok
+RESET default_statistics_target;  -- ok
+ALTER SYSTEM SET default_statistics_target = 5000;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET default_statistics_target;  -- fail, regress_error_handling_admin has insufficient privileges
+SET from_collapse_limit = 1073741824;  -- ok
+RESET from_collapse_limit;  -- ok
+ALTER SYSTEM SET from_collapse_limit = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET from_collapse_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+SET jit = OFF;  -- ok
+RESET jit;  -- ok
+ALTER SYSTEM SET jit = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET jit;  -- fail, regress_error_handling_admin has insufficient privileges
+SET join_collapse_limit = 1073741824;  -- ok
+RESET join_collapse_limit;  -- ok
+ALTER SYSTEM SET join_collapse_limit = 1073741824;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET join_collapse_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+SET plan_cache_mode = 'force_generic_plan';  -- ok
+RESET plan_cache_mode;  -- ok
+ALTER SYSTEM SET plan_cache_mode = 'force_generic_plan';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET plan_cache_mode;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / REPLICATION_SENDING
+SET wal_sender_timeout = 50;  -- ok
+RESET wal_sender_timeout;  -- ok
+ALTER SYSTEM SET wal_sender_timeout = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_sender_timeout;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_ASYNCHRONOUS
+SET backend_flush_after = 128;  -- ok
+RESET backend_flush_after;  -- ok
+ALTER SYSTEM SET backend_flush_after = 128;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET backend_flush_after;  -- fail, regress_error_handling_admin has insufficient privileges
+SET max_parallel_maintenance_workers = 50;  -- ok
+RESET max_parallel_maintenance_workers;  -- ok
+ALTER SYSTEM SET max_parallel_maintenance_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_maintenance_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+SET max_parallel_workers = 50;  -- ok
+RESET max_parallel_workers;  -- ok
+ALTER SYSTEM SET max_parallel_workers = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers;  -- fail, regress_error_handling_admin has insufficient privileges
+SET max_parallel_workers_per_gather = 50;  -- ok
+RESET max_parallel_workers_per_gather;  -- ok
+ALTER SYSTEM SET max_parallel_workers_per_gather = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET max_parallel_workers_per_gather;  -- fail, regress_error_handling_admin has insufficient privileges
+SET effective_io_concurrency = 0;  -- ok
+RESET effective_io_concurrency;  -- ok
+ALTER SYSTEM SET effective_io_concurrency = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET effective_io_concurrency;  -- fail, regress_error_handling_admin has insufficient privileges
+SET maintenance_io_concurrency = 0;  -- ok
+RESET maintenance_io_concurrency;  -- ok
+ALTER SYSTEM SET maintenance_io_concurrency = 0;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_io_concurrency;  -- fail, regress_error_handling_admin has insufficient privileges
+SET parallel_leader_participation = OFF;  -- ok
+RESET parallel_leader_participation;  -- ok
+ALTER SYSTEM SET parallel_leader_participation = OFF;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET parallel_leader_participation;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_MEM
+SET hash_mem_multiplier = 500;  -- ok
+RESET hash_mem_multiplier;  -- ok
+ALTER SYSTEM SET hash_mem_multiplier = 500;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET hash_mem_multiplier;  -- fail, regress_error_handling_admin has insufficient privileges
+SET logical_decoding_work_mem = 1073741855;  -- ok
+RESET logical_decoding_work_mem;  -- ok
+ALTER SYSTEM SET logical_decoding_work_mem = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET logical_decoding_work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+SET maintenance_work_mem = 1073742335;  -- ok
+RESET maintenance_work_mem;  -- ok
+ALTER SYSTEM SET maintenance_work_mem = 1073742335;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET maintenance_work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+SET temp_buffers = 536870961;  -- ok
+RESET temp_buffers;  -- ok
+ALTER SYSTEM SET temp_buffers = 536870961;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET temp_buffers;  -- fail, regress_error_handling_admin has insufficient privileges
+SET work_mem = 1073741855;  -- ok
+RESET work_mem;  -- ok
+ALTER SYSTEM SET work_mem = 1073741855;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET work_mem;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / RESOURCES_VACUUM_DELAY
+SET vacuum_cost_delay = 50;  -- ok
+RESET vacuum_cost_delay;  -- ok
+ALTER SYSTEM SET vacuum_cost_delay = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_delay;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_cost_limit = 5000;  -- ok
+RESET vacuum_cost_limit;  -- ok
+ALTER SYSTEM SET vacuum_cost_limit = 5000;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_limit;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_cost_page_dirty = 50;  -- ok
+RESET vacuum_cost_page_dirty;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_dirty = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_dirty;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_cost_page_hit = 50;  -- ok
+RESET vacuum_cost_page_hit;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_hit = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_hit;  -- fail, regress_error_handling_admin has insufficient privileges
+SET vacuum_cost_page_miss = 50;  -- ok
+RESET vacuum_cost_page_miss;  -- ok
+ALTER SYSTEM SET vacuum_cost_page_miss = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET vacuum_cost_page_miss;  -- fail, regress_error_handling_admin has insufficient privileges
+-- PGC_USERSET / UNGROUPED
+SET seed = 0;  -- ok
+RESET seed;  -- ok
+-- PGC_USERSET / WAL_SETTINGS
+SET commit_siblings = 50;  -- ok
+RESET commit_siblings;  -- ok
+ALTER SYSTEM SET commit_siblings = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET commit_siblings;  -- fail, regress_error_handling_admin has insufficient privileges
+SET synchronous_commit = 'remote_write';  -- ok
+RESET synchronous_commit;  -- ok
+ALTER SYSTEM SET synchronous_commit = 'remote_write';  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET synchronous_commit;  -- fail, regress_error_handling_admin has insufficient privileges
+SET wal_skip_threshold = 50;  -- ok
+RESET wal_skip_threshold;  -- ok
+ALTER SYSTEM SET wal_skip_threshold = 50;  -- fail, regress_error_handling_admin has insufficient privileges
+ALTER SYSTEM RESET wal_skip_threshold;  -- fail, regress_error_handling_admin has insufficient privileges
+RESET statement_timeout;
+RESET SESSION AUTHORIZATION;
+DROP ROLE regress_error_handling_admin;
-- 
2.21.1 (Apple Git-122.3)

v6-0013-Allow-event-trigger-ownership-by-non-superusers.patchapplication/octet-stream; name=v6-0013-Allow-event-trigger-ownership-by-non-superusers.patch; x-unix-mode=0644Download
From 98af63e11aafb3d19742cb10904ce4968a943aae Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 29 Jul 2021 15:59:28 -0700
Subject: [PATCH v6 13/19] Allow event trigger ownership by non-superusers

Non-superusers can already end up owning event triggers if superuser
is revoked from an event trigger owner, so quit the pretense and
simply allow the ownership transfer overtly by ALTER EVENT TRIGGER.

The prior situation did more to give a false sense that event
triggers would never be owned by non-superusers than it did to
actually prevent that scenario from arising.
---
 doc/src/sgml/ref/alter_event_trigger.sgml   |  4 +++-
 src/backend/commands/event_trigger.c        |  9 ++-------
 src/test/regress/expected/event_trigger.out | 17 +++++++++++++++--
 src/test/regress/sql/event_trigger.sql      | 21 +++++++++++++++++++++
 4 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/doc/src/sgml/ref/alter_event_trigger.sgml b/doc/src/sgml/ref/alter_event_trigger.sgml
index ef5253bf37..54b7af5f99 100644
--- a/doc/src/sgml/ref/alter_event_trigger.sgml
+++ b/doc/src/sgml/ref/alter_event_trigger.sgml
@@ -37,7 +37,9 @@ ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> RENAME TO
   </para>
 
   <para>
-   You must be superuser to alter an event trigger.
+   You must own the event trigger to use <command>ALTER EVENT TRIGGER</command>.
+   To alter the owner, you must also be a direct or indirect member of the
+   new owning role.
   </para>
  </refsect1>
 
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 71612d577e..93e211cecf 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -476,13 +476,8 @@ AlterEventTriggerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_EVENT_TRIGGER,
 					   NameStr(form->evtname));
 
-	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("permission denied to change owner of event trigger \"%s\"",
-						NameStr(form->evtname)),
-				 errhint("The owner of an event trigger must be a superuser.")));
+	/* Must be able to assign ownership to the target role */
+	check_is_member_of_role(GetUserId(), newOwnerId);
 
 	form->evtowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index 44d545de25..d56c75de84 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -175,11 +175,24 @@ alter default privileges for role regress_evt_user
 NOTICE:  test_event_trigger: ddl_command_end ALTER DEFAULT PRIVILEGES
 -- alter owner to non-superuser should fail
 alter event trigger regress_event_trigger owner to regress_evt_user;
-ERROR:  permission denied to change owner of event trigger "regress_event_trigger"
-HINT:  The owner of an event trigger must be a superuser.
 -- alter owner to superuser should work
 alter role regress_evt_user superuser;
 alter event trigger regress_event_trigger owner to regress_evt_user;
+-- revoke superuser from new owner
+alter role regress_evt_user nosuperuser;
+create role regress_evt_user2;
+set session authorization regress_evt_user;
+-- fail - not a member of the target role
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+ERROR:  must be member of role "regress_evt_user2"
+reset session authorization;
+grant regress_evt_user2 to regress_evt_user;
+set session authorization regress_evt_user;
+-- OK
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+reset session authorization;
+alter event trigger regress_event_trigger owner to regress_evt_user;
+drop role regress_evt_user2;
 -- should fail, name collision
 alter event trigger regress_event_trigger rename to regress_event_trigger2;
 ERROR:  event trigger "regress_event_trigger2" already exists
diff --git a/src/test/regress/sql/event_trigger.sql b/src/test/regress/sql/event_trigger.sql
index 1446cf8cc8..ef79b1059d 100644
--- a/src/test/regress/sql/event_trigger.sql
+++ b/src/test/regress/sql/event_trigger.sql
@@ -150,6 +150,27 @@ alter event trigger regress_event_trigger owner to regress_evt_user;
 alter role regress_evt_user superuser;
 alter event trigger regress_event_trigger owner to regress_evt_user;
 
+-- revoke superuser from new owner
+alter role regress_evt_user nosuperuser;
+
+create role regress_evt_user2;
+set session authorization regress_evt_user;
+
+-- fail - not a member of the target role
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+
+reset session authorization;
+grant regress_evt_user2 to regress_evt_user;
+set session authorization regress_evt_user;
+
+-- OK
+alter event trigger regress_event_trigger owner to regress_evt_user2;
+
+reset session authorization;
+
+alter event trigger regress_event_trigger owner to regress_evt_user;
+drop role regress_evt_user2;
+
 -- should fail, name collision
 alter event trigger regress_event_trigger rename to regress_event_trigger2;
 
-- 
2.21.1 (Apple Git-122.3)

v6-0014-Condition-event-triggers-on-owning-role.patchapplication/octet-stream; name=v6-0014-Condition-event-triggers-on-owning-role.patch; x-unix-mode=0644Download
From 220d3edb69463a867afc6776161b2bdddecc5db6 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Fri, 30 Jul 2021 08:52:01 -0700
Subject: [PATCH v6 14/19] Condition event triggers on owning role

Make event triggers fire only when the trigger owner is a direct or
indirect member of the role which performed the event.  For
superuser owners, nothing changes, but by assigning event trigger
ownership to a non-superuser, this provides a way of filtering when
a trigger fires.
---
 doc/src/sgml/event-trigger.sgml             |  7 +++++++
 doc/src/sgml/ref/create_event_trigger.sgml  | 11 ++++++-----
 src/backend/commands/event_trigger.c        |  9 +++++++--
 src/backend/utils/cache/evtcache.c          |  1 +
 src/include/utils/evtcache.h                |  1 +
 src/test/regress/expected/event_trigger.out | 17 +++++++++++++++++
 src/test/regress/sql/event_trigger.sql      | 21 +++++++++++++++++++++
 7 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/doc/src/sgml/event-trigger.sgml b/doc/src/sgml/event-trigger.sgml
index 60366a950e..f003bedc29 100644
--- a/doc/src/sgml/event-trigger.sgml
+++ b/doc/src/sgml/event-trigger.sgml
@@ -119,6 +119,13 @@
      to intercept. A common use of such triggers is to restrict the range of
      DDL operations which users may perform.
    </para>
+
+   <para>
+    A trigger will only fire if the trigger owner is a direct or indirect
+    member of the role which performed the event.  (Note that
+    <productname>PostgreSQL</productname> prior to version 15.0 did not
+    condition trigger firing on the permissions of the trigger owner.)
+   </para>
   </sect1>
 
   <sect1 id="event-trigger-matrix">
diff --git a/doc/src/sgml/ref/create_event_trigger.sgml b/doc/src/sgml/ref/create_event_trigger.sgml
index becd31bcad..ece05a5992 100644
--- a/doc/src/sgml/ref/create_event_trigger.sgml
+++ b/doc/src/sgml/ref/create_event_trigger.sgml
@@ -33,11 +33,12 @@ CREATE EVENT TRIGGER <replaceable class="parameter">name</replaceable>
 
   <para>
    <command>CREATE EVENT TRIGGER</command> creates a new event trigger.
-   Whenever the designated event occurs and the <literal>WHEN</literal> condition
-   associated with the trigger, if any, is satisfied, the trigger function
-   will be executed.  For a general introduction to event triggers, see
-   <xref linkend="event-triggers"/>.  The user who creates an event trigger
-   becomes its owner.
+   Whenever the designated event occurs, the trigger function will be executed
+   if the <literal>WHEN</literal> condition associated with the trigger, if
+   any, is satisfied, and if the owner of the trigger is a direct or indirect
+   member of the role which performed the event.  For a general introduction to
+   event triggers, see <xref linkend="event-triggers"/>.  The user who creates
+   an event trigger becomes its owner.
   </para>
  </refsect1>
 
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 93e211cecf..13db569775 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -612,8 +612,13 @@ EventTriggerCommonSetup(Node *parsetree,
 
 		if (filter_event_trigger(tag, item))
 		{
-			/* We must plan to fire this trigger. */
-			runlist = lappend_oid(runlist, item->fnoid);
+			/*
+			 * We must plan to fire this trigger only if the event trigger
+			 * owner is a member of the current role, else the trigger owner
+			 * can execute with privilege it could not do directly.
+			 */
+			if (is_member_of_role(item->fnowner, GetUserId()))
+				runlist = lappend_oid(runlist, item->fnoid);
 		}
 	}
 
diff --git a/src/backend/utils/cache/evtcache.c b/src/backend/utils/cache/evtcache.c
index 460b720a65..ab86fcfa31 100644
--- a/src/backend/utils/cache/evtcache.c
+++ b/src/backend/utils/cache/evtcache.c
@@ -173,6 +173,7 @@ BuildEventTriggerCache(void)
 		/* Allocate new cache item. */
 		item = palloc0(sizeof(EventTriggerCacheItem));
 		item->fnoid = form->evtfoid;
+		item->fnowner = form->evtowner;
 		item->enabled = form->evtenabled;
 
 		/* Decode and sort tags array. */
diff --git a/src/include/utils/evtcache.h b/src/include/utils/evtcache.h
index 58ddb71cb1..1e968129c6 100644
--- a/src/include/utils/evtcache.h
+++ b/src/include/utils/evtcache.h
@@ -28,6 +28,7 @@ typedef enum
 typedef struct
 {
 	Oid			fnoid;			/* function to be called */
+	Oid			fnowner;		/* event trigger owner */
 	char		enabled;		/* as SESSION_REPLICATION_ROLE_* */
 	Bitmapset  *tagset;			/* command tags, or NULL if empty */
 } EventTriggerCacheItem;
diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out
index d56c75de84..45215a622a 100644
--- a/src/test/regress/expected/event_trigger.out
+++ b/src/test/regress/expected/event_trigger.out
@@ -29,6 +29,23 @@ ERROR:  unrecognized event name "elephant_bootstrap"
 -- OK
 create event trigger regress_event_trigger on ddl_command_start
    execute procedure test_event_trigger();
+create role test_evt_role1 nosuperuser;
+create role test_evt_role2 nosuperuser;
+alter event trigger regress_event_trigger owner to test_evt_role1;
+set session authorization test_evt_role1;
+-- OK, should fire test_event_trigger
+create table test_evt_table1 (col text);
+NOTICE:  test_event_trigger: ddl_command_start CREATE TABLE
+reset session authorization;
+set session authorization test_evt_role2;
+-- OK, should bypass test_event_trigger
+create table test_evt_table2 (col text);
+grant test_evt_role2 to test_evt_role1;
+-- Ok, should fire test_event_trigger now
+create table test_evt_table3 (col text);
+NOTICE:  test_event_trigger: ddl_command_start CREATE TABLE
+reset session authorization;
+alter event trigger regress_event_trigger owner to current_user;
 -- OK
 create event trigger regress_event_trigger_end on ddl_command_end
    execute function test_event_trigger();
diff --git a/src/test/regress/sql/event_trigger.sql b/src/test/regress/sql/event_trigger.sql
index ef79b1059d..839dfd6db9 100644
--- a/src/test/regress/sql/event_trigger.sql
+++ b/src/test/regress/sql/event_trigger.sql
@@ -29,6 +29,27 @@ create event trigger regress_event_trigger on elephant_bootstrap
 create event trigger regress_event_trigger on ddl_command_start
    execute procedure test_event_trigger();
 
+create role test_evt_role1 nosuperuser;
+create role test_evt_role2 nosuperuser;
+
+alter event trigger regress_event_trigger owner to test_evt_role1;
+
+set session authorization test_evt_role1;
+-- OK, should fire test_event_trigger
+create table test_evt_table1 (col text);
+reset session authorization;
+
+set session authorization test_evt_role2;
+-- OK, should bypass test_event_trigger
+create table test_evt_table2 (col text);
+
+grant test_evt_role2 to test_evt_role1;
+-- Ok, should fire test_event_trigger now
+create table test_evt_table3 (col text);
+
+reset session authorization;
+alter event trigger regress_event_trigger owner to current_user;
+
 -- OK
 create event trigger regress_event_trigger_end on ddl_command_end
    execute function test_event_trigger();
-- 
2.21.1 (Apple Git-122.3)

v6-0015-Handle-non-superuser-subscription-owners-sensibly.patchapplication/octet-stream; name=v6-0015-Handle-non-superuser-subscription-owners-sensibly.patch; x-unix-mode=0644Download
From 88be245f6cae11dd22a6b4dc0dc15013c17d713e Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 26 Aug 2021 13:51:17 -0700
Subject: [PATCH v6 15/19] Handle non-superuser subscription owners sensibly

Stop pretending that subscriptions are always owned by superusers
and instead fix security problems that arise as a consequence of
them not being superuser.  Specifically, disallow a non-superuser
changing the connection, the list of publications, or the options
for their subscription.

The prior behavior violated the principle of least surprise,
allowing a non-superuser in possession of a subscription to change
all aspects of the subscription, connecting it to a different server
and subscribing a different set of publications, effectively
amounting to a non-superuser creating a new subscription.

The new behavior restricts the non-superuser owner to enabling,
disabling, refreshing, renaming, and further assigning ownership of
the subscription.
---
 doc/src/sgml/ref/alter_subscription.sgml   | 11 ++++-
 src/backend/commands/subscriptioncmds.c    | 20 +++++++++
 src/test/regress/expected/subscription.out | 51 ++++++++++++++++++++++
 src/test/regress/sql/subscription.sql      | 35 +++++++++++++++
 4 files changed, 115 insertions(+), 2 deletions(-)

diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml
index 835be0d2a4..965709b403 100644
--- a/doc/src/sgml/ref/alter_subscription.sgml
+++ b/doc/src/sgml/ref/alter_subscription.sgml
@@ -47,8 +47,6 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
    You must own the subscription to use <command>ALTER SUBSCRIPTION</command>.
    To alter the owner, you must also be a direct or indirect member of the
    new owning role. The new owner has to be a superuser.
-   (Currently, all subscription owners must be superusers, so the owner checks
-   will be bypassed in practice.  But this might change in the future.)
   </para>
   
   <para>
@@ -96,6 +94,9 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
       <xref linkend="sql-createsubscription"/>.  See there for more
       information.
      </para>
+     <para>
+      Only superusers may change the connection property.
+     </para>
     </listitem>
    </varlistentry>
 
@@ -134,6 +135,9 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
       Additionally, refresh options as described
       under <literal>REFRESH PUBLICATION</literal> may be specified.
      </para>
+     <para>
+      Only superusers may change the list of subscribed publications.
+     </para>
     </listitem>
    </varlistentry>
 
@@ -199,6 +203,9 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
       <literal>binary</literal>, and
       <literal>streaming</literal>.
      </para>
+     <para>
+      Only superusers may alter subscription parameters.
+     </para>
     </listitem>
    </varlistentry>
 
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index c47ba26369..6a5d192128 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -868,6 +868,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 	{
 		case ALTER_SUBSCRIPTION_OPTIONS:
 			{
+				if (!superuser())
+					ereport(ERROR,
+							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+							 errmsg("must be superuser to alter the options for a subscription")));
+
 				supported_opts = (SUBOPT_SLOT_NAME |
 								  SUBOPT_SYNCHRONOUS_COMMIT | SUBOPT_BINARY |
 								  SUBOPT_STREAMING);
@@ -946,6 +951,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 			}
 
 		case ALTER_SUBSCRIPTION_CONNECTION:
+			if (!superuser())
+				ereport(ERROR,
+						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+						 errmsg("must be superuser to alter the connection for a subscription")));
+
 			/* Load the library providing us libpq calls. */
 			load_file("libpqwalreceiver", false);
 			/* Check the connection info string. */
@@ -959,6 +969,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 
 		case ALTER_SUBSCRIPTION_SET_PUBLICATION:
 			{
+				if (!superuser())
+					ereport(ERROR,
+							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+							 errmsg("must be superuser to alter publications for a subscription")));
+
 				supported_opts = SUBOPT_COPY_DATA | SUBOPT_REFRESH;
 				parse_subscription_options(pstate, stmt->options,
 										   supported_opts, &opts);
@@ -1006,6 +1021,11 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
 				List	   *publist;
 				bool		isadd = stmt->kind == ALTER_SUBSCRIPTION_ADD_PUBLICATION;
 
+				if (!superuser())
+					ereport(ERROR,
+							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+							 errmsg("must be superuser to alter publications for a subscription")));
+
 				supported_opts = SUBOPT_REFRESH | SUBOPT_COPY_DATA;
 				parse_subscription_options(pstate, stmt->options,
 										   supported_opts, &opts);
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index 15a1ac6398..a05e6f1795 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -144,6 +144,57 @@ HINT:  The owner of a subscription must be a superuser.
 ALTER ROLE regress_subscription_user2 SUPERUSER;
 -- now it works
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
+-- revoke superuser from new owner
+ALTER ROLE regress_subscription_user2 NOSUPERUSER;
+SET SESSION AUTHORIZATION regress_subscription_user2;
+-- fail - non-superuser owner cannot change connection parameter
+ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
+ERROR:  must be superuser to alter the connection for a subscription
+-- fail - non-superuser owner cannot alter the publications list
+ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION somepub;
+ERROR:  must be superuser to alter publications for a subscription
+ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION otherpub;
+ERROR:  must be superuser to alter publications for a subscription
+ALTER SUBSCRIPTION regress_testsub SET PUBLICATION somepub, otherpub;
+ERROR:  must be superuser to alter publications for a subscription
+-- fail - non-superuser owner cannot change subscription parameters
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = true);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = false);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = true);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = false);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (slot_name = 'somethingelse');
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = local);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_write);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_apply);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (binary = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (binary = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (connect = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (connect = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (streaming = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (streaming = off);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = on);
+ERROR:  must be superuser to alter the options for a subscription
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = off);
+ERROR:  must be superuser to alter the options for a subscription
+SET SESSION AUTHORIZATION 'regress_subscription_user';
 -- fail - cannot do DROP SUBSCRIPTION inside transaction block with slot name
 BEGIN;
 DROP SUBSCRIPTION regress_testsub;
diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql
index 7faa935a2a..8f66709441 100644
--- a/src/test/regress/sql/subscription.sql
+++ b/src/test/regress/sql/subscription.sql
@@ -105,6 +105,41 @@ ALTER ROLE regress_subscription_user2 SUPERUSER;
 -- now it works
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
 
+-- revoke superuser from new owner
+ALTER ROLE regress_subscription_user2 NOSUPERUSER;
+
+SET SESSION AUTHORIZATION regress_subscription_user2;
+
+-- fail - non-superuser owner cannot change connection parameter
+ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
+
+-- fail - non-superuser owner cannot alter the publications list
+ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION somepub;
+ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION otherpub;
+ALTER SUBSCRIPTION regress_testsub SET PUBLICATION somepub, otherpub;
+
+-- fail - non-superuser owner cannot change subscription parameters
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = true);
+ALTER SUBSCRIPTION regress_testsub SET (copy_data = false);
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = true);
+ALTER SUBSCRIPTION regress_testsub SET (create_slot = false);
+ALTER SUBSCRIPTION regress_testsub SET (slot_name = 'somethingelse');
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = on);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = off);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = local);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_write);
+ALTER SUBSCRIPTION regress_testsub SET (synchronous_commit = remote_apply);
+ALTER SUBSCRIPTION regress_testsub SET (binary = on);
+ALTER SUBSCRIPTION regress_testsub SET (binary = off);
+ALTER SUBSCRIPTION regress_testsub SET (connect = on);
+ALTER SUBSCRIPTION regress_testsub SET (connect = off);
+ALTER SUBSCRIPTION regress_testsub SET (streaming = on);
+ALTER SUBSCRIPTION regress_testsub SET (streaming = off);
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = on);
+ALTER SUBSCRIPTION regress_testsub SET (two_phase = off);
+
+SET SESSION AUTHORIZATION 'regress_subscription_user';
+
 -- fail - cannot do DROP SUBSCRIPTION inside transaction block with slot name
 BEGIN;
 DROP SUBSCRIPTION regress_testsub;
-- 
2.21.1 (Apple Git-122.3)

v6-0016-Allow-subscription-ownership-by-non-superusers.patchapplication/octet-stream; name=v6-0016-Allow-subscription-ownership-by-non-superusers.patch; x-unix-mode=0644Download
From 4fd91f9eb9345505985b0d342829c2b232f451ed Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 29 Jul 2021 11:57:20 -0700
Subject: [PATCH v6 16/19] Allow subscription ownership by non-superusers

Non-superusers can already end up owning subscriptions if superuser
is revoked from a subscription owner, so quit the pretense and
simply allow the ownership transfer overtly by ALTER SUBSCRIPTION.

The prior situation did more to give a false sense that
subscriptions would never be owned by non-superusers than it did to
actually prevent that scenario from arising.
---
 doc/src/sgml/ref/alter_subscription.sgml   |  2 +-
 src/backend/commands/subscriptioncmds.c    |  9 ++-------
 src/test/regress/expected/subscription.out | 12 ++++--------
 src/test/regress/sql/subscription.sql      | 11 ++++-------
 4 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml
index 965709b403..a376b55408 100644
--- a/doc/src/sgml/ref/alter_subscription.sgml
+++ b/doc/src/sgml/ref/alter_subscription.sgml
@@ -46,7 +46,7 @@ ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO <
   <para>
    You must own the subscription to use <command>ALTER SUBSCRIPTION</command>.
    To alter the owner, you must also be a direct or indirect member of the
-   new owning role. The new owner has to be a superuser.
+   new owning role.
   </para>
   
   <para>
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 6a5d192128..d75183cd12 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -1476,13 +1476,8 @@ AlterSubscriptionOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
 		aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_SUBSCRIPTION,
 					   NameStr(form->subname));
 
-	/* New owner must be a superuser */
-	if (!superuser_arg(newOwnerId))
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("permission denied to change owner of subscription \"%s\"",
-						NameStr(form->subname)),
-				 errhint("The owner of a subscription must be a superuser.")));
+	/* Must be able to assign ownership to the target role */
+	check_is_member_of_role(GetUserId(), newOwnerId);
 
 	form->subowner = newOwnerId;
 	CatalogTupleUpdate(rel, &tup->t_self, tup);
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index a05e6f1795..9b4dac9c0e 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -137,16 +137,12 @@ HINT:  Available values: local, remote_write, remote_apply, on, off.
 
 -- rename back to keep the rest simple
 ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
--- fail - new owner must be superuser
+-- superuser can assign the ownership to a non-superuser
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
-ERROR:  permission denied to change owner of subscription "regress_testsub"
-HINT:  The owner of a subscription must be a superuser.
-ALTER ROLE regress_subscription_user2 SUPERUSER;
--- now it works
-ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
--- revoke superuser from new owner
-ALTER ROLE regress_subscription_user2 NOSUPERUSER;
 SET SESSION AUTHORIZATION regress_subscription_user2;
+-- fail - not a member of the target role
+ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user;
+ERROR:  must be member of role "regress_subscription_user"
 -- fail - non-superuser owner cannot change connection parameter
 ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
 ERROR:  must be superuser to alter the connection for a subscription
diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql
index 8f66709441..6c68d547d1 100644
--- a/src/test/regress/sql/subscription.sql
+++ b/src/test/regress/sql/subscription.sql
@@ -99,17 +99,14 @@ ALTER SUBSCRIPTION regress_testsub_foo SET (synchronous_commit = foobar);
 -- rename back to keep the rest simple
 ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
 
--- fail - new owner must be superuser
-ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
-ALTER ROLE regress_subscription_user2 SUPERUSER;
--- now it works
+-- superuser can assign the ownership to a non-superuser
 ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
 
--- revoke superuser from new owner
-ALTER ROLE regress_subscription_user2 NOSUPERUSER;
-
 SET SESSION AUTHORIZATION regress_subscription_user2;
 
+-- fail - not a member of the target role
+ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user;
+
 -- fail - non-superuser owner cannot change connection parameter
 ALTER SUBSCRIPTION regress_testsub CONNECTION 'dbname=somethingelse';
 
-- 
2.21.1 (Apple Git-122.3)

v6-0017-Respect-permissions-within-logical-replication.patchapplication/octet-stream; name=v6-0017-Respect-permissions-within-logical-replication.patch; x-unix-mode=0644Download
From 045e704b858776203b7ba31b473a426786d330df Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Mon, 30 Aug 2021 14:01:40 -0700
Subject: [PATCH v6 17/19] Respect permissions within logical replication

Prevent logical replication workers from performing insert, update,
delete, truncate, or copy commands on tables unless the subscription
owner has permission to do so.
---
 doc/src/sgml/logical-replication.sgml       | 49 +++++++++++++++------
 src/backend/replication/logical/tablesync.c | 13 ++++++
 src/backend/replication/logical/worker.c    | 29 ++++++++++++
 3 files changed, 78 insertions(+), 13 deletions(-)

diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml
index 88646bc859..d6c7698847 100644
--- a/doc/src/sgml/logical-replication.sgml
+++ b/doc/src/sgml/logical-replication.sgml
@@ -330,6 +330,15 @@
    will simply be skipped.
   </para>
 
+  <para>
+   Logical replication operations are performed with the privileges of the role
+   which owns the subscription.  Only superusers may create subscriptions, but
+   if the ownership of the subscription is transferred, or if the owner
+   subsequently has superuser privileges revoked, permissions failures can
+   cause conflicts.  (Note that <productname>PostgreSQL</productname> prior to
+   version 15.0 did no permissions checking when applying changes.)
+  </para>
+
   <para>
    A conflict will produce an error and will stop the replication; it must be
    resolved manually by the user.  Details about the conflict can be found in
@@ -337,7 +346,7 @@
   </para>
 
   <para>
-   The resolution can be done either by changing data on the subscriber so
+   The resolution can be done either by changing data or permissions on the subscriber so
    that it does not conflict with the incoming change or by skipping the
    transaction that conflicts with the existing data.  The transaction can be
    skipped by calling the <link linkend="pg-replication-origin-advance">
@@ -530,13 +539,15 @@
 
   <para>
    A user able to modify the schema of subscriber-side tables can execute
-   arbitrary code as a superuser.  Limit ownership
-   and <literal>TRIGGER</literal> privilege on such tables to roles that
-   superusers trust.  Moreover, if untrusted users can create tables, use only
-   publications that list tables explicitly.  That is to say, create a
-   subscription <literal>FOR ALL TABLES</literal> only when superusers trust
-   every user permitted to create a non-temp table on the publisher or the
-   subscriber.
+   arbitrary code as the role which owns any subscription which modifies those
+   tables.  Limit ownership and <literal>TRIGGER</literal> privilege on such
+   tables to trusted roles.  Likewise, limit privileges of the subscription
+   owner to only the privileges needed to modify the tables that the
+   subscription should be able to change.  Moreover, if untrusted users can
+   create tables, use only publications that list tables explicitly.  That is
+   to say, create a subscription <literal>FOR ALL TABLES</literal> only when
+   superusers trust every user permitted to create a non-temp table on the
+   publisher or the subscriber.
   </para>
 
   <para>
@@ -569,18 +580,30 @@
   </para>
 
   <para>
-   To create a subscription, the user must be a superuser.
+   To create a subscription, the user must be a superuser.  The ownership can
+   subsequently be transferred or the role have superuser privilege removed.
   </para>
 
   <para>
    The subscription apply process will run in the local database with the
-   privileges of a superuser.
+   privileges of the subscription owner.
+  </para>
+
+  <para>
+   On the publisher, privileges are only checked once at the start of a
+   replication connection and are not re-checked as each change record is read.
   </para>
 
   <para>
-   Privileges are only checked once at the start of a replication connection.
-   They are not re-checked as each change record is read from the publisher,
-   nor are they re-checked for each change when applied.
+   On the subscriber, the subscription owner's privileges are re-checked for
+   each change record when applied, but beware that a change of ownership for a
+   subscription may not be noticed immediately by the replication workers.
+   Changes made on the publisher may be applied on the subscriber as
+   the old owner.  In such cases, the old owner's privileges will be the ones
+   that matter.  Worse still, it may be hard to predict when replication
+   workers will notice the new ownership.  Subscriptions created disabled and
+   only enabled after ownership has been changed will not be subject to this
+   race condition.
   </para>
  </sect1>
 
diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c
index f07983a43c..2400ef8c45 100644
--- a/src/backend/replication/logical/tablesync.c
+++ b/src/backend/replication/logical/tablesync.c
@@ -111,6 +111,7 @@
 #include "replication/origin.h"
 #include "storage/ipc.h"
 #include "storage/lmgr.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/lsyscache.h"
 #include "utils/memutils.h"
@@ -924,6 +925,7 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	char		relstate;
 	XLogRecPtr	relstate_lsn;
 	Relation	rel;
+	AclResult	aclresult;
 	WalRcvExecResult *res;
 	char		originname[NAMEDATALEN];
 	RepOriginId originid;
@@ -1042,6 +1044,17 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)
 	 */
 	rel = table_open(MyLogicalRepWorker->relid, RowExclusiveLock);
 
+	/*
+	 * Check that our table sync worker has permission to insert into the
+	 * target table.
+	 */
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel), GetUserId(),
+								  ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->rd_rel->relkind),
+					   RelationGetRelationName(rel));
+
 	/*
 	 * Start a transaction in the remote node in REPEATABLE READ mode.  This
 	 * ensures that both the replication slot we create (see below) and the
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c
index bfb7d1a261..86ca118b01 100644
--- a/src/backend/replication/logical/worker.c
+++ b/src/backend/replication/logical/worker.c
@@ -179,6 +179,7 @@
 #include "storage/proc.h"
 #include "storage/procarray.h"
 #include "tcop/tcopprot.h"
+#include "utils/acl.h"
 #include "utils/builtins.h"
 #include "utils/catcache.h"
 #include "utils/dynahash.h"
@@ -1572,6 +1573,7 @@ apply_handle_insert(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData newtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1594,6 +1596,12 @@ apply_handle_insert(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel), GetUserId(),
+								  ACL_INSERT);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Set relation for error callback */
 	apply_error_callback_arg.rel = rel;
@@ -1694,6 +1702,7 @@ apply_handle_update(StringInfo s)
 {
 	LogicalRepRelMapEntry *rel;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	LogicalRepTupleData oldtup;
@@ -1721,6 +1730,12 @@ apply_handle_update(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel), GetUserId(),
+								  ACL_UPDATE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Set relation for error callback */
 	apply_error_callback_arg.rel = rel;
@@ -1861,6 +1876,7 @@ apply_handle_delete(StringInfo s)
 	LogicalRepRelMapEntry *rel;
 	LogicalRepTupleData oldtup;
 	LogicalRepRelId relid;
+	AclResult	aclresult;
 	ApplyExecutionData *edata;
 	EState	   *estate;
 	TupleTableSlot *remoteslot;
@@ -1883,6 +1899,12 @@ apply_handle_delete(StringInfo s)
 		end_replication_step();
 		return;
 	}
+	aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel), GetUserId(),
+								  ACL_DELETE);
+	if (aclresult != ACLCHECK_OK)
+		aclcheck_error(aclresult,
+					   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+					   get_rel_name(rel->localreloid));
 
 	/* Set relation for error callback */
 	apply_error_callback_arg.rel = rel;
@@ -2255,6 +2277,7 @@ apply_handle_truncate(StringInfo s)
 	{
 		LogicalRepRelId relid = lfirst_oid(lc);
 		LogicalRepRelMapEntry *rel;
+		AclResult	aclresult;
 
 		rel = logicalrep_rel_open(relid, lockmode);
 		if (!should_apply_changes_for_rel(rel))
@@ -2266,6 +2289,12 @@ apply_handle_truncate(StringInfo s)
 			logicalrep_rel_close(rel, lockmode);
 			continue;
 		}
+		aclresult = pg_class_aclcheck(RelationGetRelid(rel->localrel),
+									  GetUserId(), ACL_TRUNCATE);
+		if (aclresult != ACLCHECK_OK)
+			aclcheck_error(aclresult,
+						   get_relkind_objtype(rel->localrel->rd_rel->relkind),
+						   get_rel_name(rel->localreloid));
 
 		remote_rels = lappend(remote_rels, rel);
 		rels = lappend(rels, rel->localrel);
-- 
2.21.1 (Apple Git-122.3)

v6-0018-Adding-owners-to-roles.patchapplication/octet-stream; name=v6-0018-Adding-owners-to-roles.patch; x-unix-mode=0644Download
From 0777f60f13d8f43f0d62ce47407a53232cf8949c Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Thu, 26 Aug 2021 15:42:27 -0700
Subject: [PATCH v6 18/19] Adding owners to roles.

All roles now have owners.  By default, roles belong to the role
that created them, and initdb-time roles are owned by POSTGRES.
---
 src/backend/commands/alter.c                  |  3 ++
 src/backend/commands/user.c                   | 45 ++++++++++++++++++-
 src/backend/parser/gram.y                     | 12 +++++
 src/include/catalog/pg_authid.h               |  1 +
 src/include/commands/user.h                   |  1 +
 .../unsafe_tests/expected/rolenames.out       |  6 ++-
 .../modules/unsafe_tests/sql/rolenames.sql    |  3 +-
 src/test/regress/expected/oidjoins.out        |  1 +
 src/test/regress/expected/privileges.out      |  9 +++-
 src/test/regress/sql/privileges.sql           | 13 +++++-
 10 files changed, 89 insertions(+), 5 deletions(-)

diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 29249498a9..6cf1a9175a 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -839,6 +839,9 @@ ExecAlterOwnerStmt(AlterOwnerStmt *stmt)
 		case OBJECT_DATABASE:
 			return AlterDatabaseOwner(strVal((Value *) stmt->object), newowner);
 
+		case OBJECT_ROLE:
+			return AlterRoleOwner(strVal((Value *) stmt->object), newowner);
+
 		case OBJECT_SCHEMA:
 			return AlterSchemaOwner(strVal((Value *) stmt->object), newowner);
 
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index aa69821be4..815c7095ec 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -77,6 +77,7 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 	Datum		new_record[Natts_pg_authid];
 	bool		new_record_nulls[Natts_pg_authid];
 	Oid			roleid;
+	Oid			owner;
 	ListCell   *item;
 	ListCell   *option;
 	char	   *password = NULL;	/* user password */
@@ -108,6 +109,9 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 	DefElem    *dvalidUntil = NULL;
 	DefElem    *dbypassRLS = NULL;
 
+	/* Make more flexible later */
+	owner = GetUserId();
+
 	/* The defaults can vary depending on the original statement type */
 	switch (stmt->stmt_type)
 	{
@@ -345,6 +349,7 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 		DirectFunctionCall1(namein, CStringGetDatum(stmt->role));
 
 	new_record[Anum_pg_authid_rolsuper - 1] = BoolGetDatum(issuper);
+	new_record[Anum_pg_authid_rolowner - 1] = ObjectIdGetDatum(owner);
 	new_record[Anum_pg_authid_rolinherit - 1] = BoolGetDatum(inherit);
 	new_record[Anum_pg_authid_rolcreaterole - 1] = BoolGetDatum(createrole);
 	new_record[Anum_pg_authid_rolcreatedb - 1] = BoolGetDatum(createdb);
@@ -422,6 +427,8 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 	 */
 	CatalogTupleInsert(pg_authid_rel, tuple);
 
+	recordDependencyOnOwner(AuthIdRelationId, roleid, owner);
+
 	/*
 	 * Advance command counter so we can see new record; else tests in
 	 * AddRoleMems may fail.
@@ -1078,8 +1085,9 @@ DropRole(DropRoleStmt *stmt)
 		systable_endscan(sscan);
 
 		/*
-		 * Remove any comments or security labels on this role.
+		 * Remove any dependencies, comments or security labels on this role.
 		 */
+		deleteSharedDependencyRecordsFor(AuthIdRelationId, roleid, 0);
 		DeleteSharedComments(roleid, AuthIdRelationId);
 		DeleteSharedSecurityLabel(roleid, AuthIdRelationId);
 
@@ -1675,3 +1683,38 @@ DelRoleMems(const char *rolename, Oid roleid,
 	 */
 	table_close(pg_authmem_rel, NoLock);
 }
+
+/*
+ * Change role owner
+ */
+ObjectAddress
+AlterRoleOwner(const char *name, Oid newOwnerId)
+{
+	Oid                     roleid;
+	HeapTuple       tup;
+	Relation        rel;
+	ObjectAddress address;
+	Form_pg_authid authform;
+
+	rel = table_open(AuthIdRelationId, RowExclusiveLock);
+
+	tup = SearchSysCache1(AUTHNAME, CStringGetDatum(name));
+	if (!HeapTupleIsValid(tup))
+		ereport(ERROR,
+				(errcode(ERRCODE_UNDEFINED_SCHEMA),
+				 errmsg("role \"%s\" does not exist", name)));
+
+	authform = (Form_pg_authid) GETSTRUCT(tup);
+	roleid = authform->oid;
+
+	elog(WARNING, "AlterRoleOwner_internal not yet implemented");
+	// AlterRoleOwner_internal(tup, rel, newOwnerId);
+
+	ObjectAddressSet(address, AuthIdRelationId, roleid);
+
+	ReleaseSysCache(tup);
+
+	table_close(rel, RowExclusiveLock);
+
+	return address;
+}
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 39a2849eba..aca6856f3d 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -1195,6 +1195,10 @@ CreateOptRoleElem:
 				{
 					$$ = makeDefElem("addroleto", (Node *)$3, @1);
 				}
+			| OWNER RoleSpec
+				{
+					$$ = makeDefElem("owner", (Node *)$2, @1);
+				}
 		;
 
 
@@ -9490,6 +9494,14 @@ AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec
 					n->newowner = $6;
 					$$ = (Node *)n;
 				}
+			| ALTER ROLE RoleSpec OWNER TO RoleSpec
+				{
+					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
+					n->objectType = OBJECT_ROLE;
+					n->object = (Node *) $3;
+					n->newowner = $6;
+					$$ = (Node *)n;
+				}
 			| ALTER ROUTINE function_with_argtypes OWNER TO RoleSpec
 				{
 					AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
diff --git a/src/include/catalog/pg_authid.h b/src/include/catalog/pg_authid.h
index 2d7115e31d..cce43388d8 100644
--- a/src/include/catalog/pg_authid.h
+++ b/src/include/catalog/pg_authid.h
@@ -32,6 +32,7 @@ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(284
 {
 	Oid			oid;			/* oid */
 	NameData	rolname;		/* name of role */
+	Oid			rolowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid); /* owner of this role */
 	bool		rolsuper;		/* read this field via superuser() only! */
 	bool		rolinherit;		/* inherit privileges from other roles? */
 	bool		rolcreaterole;	/* allowed to create more roles? */
diff --git a/src/include/commands/user.h b/src/include/commands/user.h
index 0b7a3cd65f..b49fd2b2c5 100644
--- a/src/include/commands/user.h
+++ b/src/include/commands/user.h
@@ -33,5 +33,6 @@ extern ObjectAddress RenameRole(const char *oldname, const char *newname);
 extern void DropOwnedObjects(DropOwnedStmt *stmt);
 extern void ReassignOwnedObjects(ReassignOwnedStmt *stmt);
 extern List *roleSpecsToIds(List *memberNames);
+extern ObjectAddress AlterRoleOwner(const char *name, Oid newOwnerId);
 
 #endif							/* USER_H */
diff --git a/src/test/modules/unsafe_tests/expected/rolenames.out b/src/test/modules/unsafe_tests/expected/rolenames.out
index eb608fdc2e..8b79a63b80 100644
--- a/src/test/modules/unsafe_tests/expected/rolenames.out
+++ b/src/test/modules/unsafe_tests/expected/rolenames.out
@@ -1086,6 +1086,10 @@ REVOKE pg_read_all_settings FROM regress_role_haspriv;
 \c
 DROP SCHEMA test_roles_schema;
 DROP OWNED BY regress_testrol0, "Public", "current_role", "current_user", regress_testrol1, regress_testrol2, regress_testrolx CASCADE;
-DROP ROLE regress_testrol0, regress_testrol1, regress_testrol2, regress_testrolx;
+DROP ROLE regress_testrol0, regress_testrol1, regress_testrol2, regress_testrolx; -- fails with owner of role regress_role_haspriv
+ERROR:  role "regress_testrol2" cannot be dropped because some objects depend on it
+DETAIL:  owner of role regress_role_haspriv
+owner of role regress_role_nopriv
 DROP ROLE "Public", "None", "current_role", "current_user", "session_user", "user";
 DROP ROLE regress_role_haspriv, regress_role_nopriv;
+DROP ROLE regress_testrol0, regress_testrol1, regress_testrol2, regress_testrolx;  -- ok now
diff --git a/src/test/modules/unsafe_tests/sql/rolenames.sql b/src/test/modules/unsafe_tests/sql/rolenames.sql
index adac36536d..95a54ce70d 100644
--- a/src/test/modules/unsafe_tests/sql/rolenames.sql
+++ b/src/test/modules/unsafe_tests/sql/rolenames.sql
@@ -499,6 +499,7 @@ REVOKE pg_read_all_settings FROM regress_role_haspriv;
 
 DROP SCHEMA test_roles_schema;
 DROP OWNED BY regress_testrol0, "Public", "current_role", "current_user", regress_testrol1, regress_testrol2, regress_testrolx CASCADE;
-DROP ROLE regress_testrol0, regress_testrol1, regress_testrol2, regress_testrolx;
+DROP ROLE regress_testrol0, regress_testrol1, regress_testrol2, regress_testrolx; -- fails with owner of role regress_role_haspriv
 DROP ROLE "Public", "None", "current_role", "current_user", "session_user", "user";
 DROP ROLE regress_role_haspriv, regress_role_nopriv;
+DROP ROLE regress_testrol0, regress_testrol1, regress_testrol2, regress_testrolx;  -- ok now
diff --git a/src/test/regress/expected/oidjoins.out b/src/test/regress/expected/oidjoins.out
index 1461e947cd..beaf942f59 100644
--- a/src/test/regress/expected/oidjoins.out
+++ b/src/test/regress/expected/oidjoins.out
@@ -194,6 +194,7 @@ NOTICE:  checking pg_database {dattablespace} => pg_tablespace {oid}
 NOTICE:  checking pg_db_role_setting {setdatabase} => pg_database {oid}
 NOTICE:  checking pg_db_role_setting {setrole} => pg_authid {oid}
 NOTICE:  checking pg_tablespace {spcowner} => pg_authid {oid}
+NOTICE:  checking pg_authid {rolowner} => pg_authid {oid}
 NOTICE:  checking pg_auth_members {roleid} => pg_authid {oid}
 NOTICE:  checking pg_auth_members {member} => pg_authid {oid}
 NOTICE:  checking pg_auth_members {grantor} => pg_authid {oid}
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 83cff902f3..c4456cadce 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -27,8 +27,10 @@ CREATE USER regress_priv_user4;
 CREATE USER regress_priv_user5;
 CREATE USER regress_priv_user5;	-- duplicate
 ERROR:  role "regress_priv_user5" already exists
-CREATE USER regress_priv_user6;
+CREATE USER regress_priv_user6 CREATEROLE;
+SET SESSION AUTHORIZATION regress_priv_user6;
 CREATE USER regress_priv_user7;
+RESET SESSION AUTHORIZATION;
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
 CREATE GROUP regress_priv_group1;
@@ -2327,7 +2329,12 @@ DROP USER regress_priv_user3;
 DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
 DROP USER regress_priv_user6;
+ERROR:  role "regress_priv_user6" cannot be dropped because some objects depend on it
+DETAIL:  owner of role regress_priv_user7
+SET SESSION AUTHORIZATION regress_priv_user6;
 DROP USER regress_priv_user7;
+RESET SESSION AUTHORIZATION;
+DROP USER regress_priv_user6;
 DROP USER regress_priv_user8; -- does not exist
 ERROR:  role "regress_priv_user8" does not exist
 -- permissions with LOCK TABLE
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 3d1a1db987..bd2d67691c 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -29,9 +29,14 @@ CREATE USER regress_priv_user2;
 CREATE USER regress_priv_user3;
 CREATE USER regress_priv_user4;
 CREATE USER regress_priv_user5;
+
 CREATE USER regress_priv_user5;	-- duplicate
-CREATE USER regress_priv_user6;
+
+CREATE USER regress_priv_user6 CREATEROLE;
+
+SET SESSION AUTHORIZATION regress_priv_user6;
 CREATE USER regress_priv_user7;
+RESET SESSION AUTHORIZATION;
 
 GRANT pg_read_all_data TO regress_priv_user6;
 GRANT pg_write_all_data TO regress_priv_user7;
@@ -1389,8 +1394,14 @@ DROP USER regress_priv_user2;
 DROP USER regress_priv_user3;
 DROP USER regress_priv_user4;
 DROP USER regress_priv_user5;
+
 DROP USER regress_priv_user6;
+
+SET SESSION AUTHORIZATION regress_priv_user6;
 DROP USER regress_priv_user7;
+RESET SESSION AUTHORIZATION;
+
+DROP USER regress_priv_user6;
 DROP USER regress_priv_user8; -- does not exist
 
 
-- 
2.21.1 (Apple Git-122.3)

v6-0019-Giving-role-owners-control-over-owned-roles.patchapplication/octet-stream; name=v6-0019-Giving-role-owners-control-over-owned-roles.patch; x-unix-mode=0644Download
From f21adf2073b60b0cee1a0c115db53e3006a00825 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Fri, 27 Aug 2021 14:29:28 -0700
Subject: [PATCH v6 19/19] Giving role owners control over owned roles.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For any set of roles (R₁..Rₓ), where Rᵢ owns Rᵢ₊₁ for i in 1..x-1,
role Rᵢ can perform any action on objects owned by role Rⱼ if i < j.

In other words, create a role ownership hierarchy where roles can
act as owners of objects belonging to other roles, so long as those
other roles have a chain of ownership leading back to the role
performing the action.
---
 src/backend/catalog/aclchk.c                  | 68 ++++++++++++++++---
 src/backend/catalog/objectaddress.c           | 22 +-----
 src/backend/commands/user.c                   | 16 +++--
 src/backend/utils/adt/acl.c                   |  4 ++
 src/include/utils/acl.h                       |  1 +
 .../expected/dummy_seclabel.out               |  2 +-
 6 files changed, 77 insertions(+), 36 deletions(-)

diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c
index 89792b154e..f24b664970 100644
--- a/src/backend/catalog/aclchk.c
+++ b/src/backend/catalog/aclchk.c
@@ -3418,6 +3418,9 @@ aclcheck_error(AclResult aclerr, ObjectType objtype,
 					case OBJECT_VIEW:
 						msg = gettext_noop("permission denied for view %s");
 						break;
+					case OBJECT_ROLE:
+						msg = gettext_noop("permission denied for role %s");
+						break;
 						/* these currently aren't used */
 					case OBJECT_ACCESS_METHOD:
 					case OBJECT_AMOP:
@@ -3428,7 +3431,6 @@ aclcheck_error(AclResult aclerr, ObjectType objtype,
 					case OBJECT_DEFACL:
 					case OBJECT_DOMCONSTRAINT:
 					case OBJECT_PUBLICATION_REL:
-					case OBJECT_ROLE:
 					case OBJECT_RULE:
 					case OBJECT_TABCONSTRAINT:
 					case OBJECT_TRANSFORM:
@@ -3543,6 +3545,9 @@ aclcheck_error(AclResult aclerr, ObjectType objtype,
 					case OBJECT_TSDICTIONARY:
 						msg = gettext_noop("must be owner of text search dictionary %s");
 						break;
+					case OBJECT_ROLE:
+						msg = gettext_noop("must be owner of role %s");
+						break;
 
 						/*
 						 * Special cases: For these, the error message talks
@@ -3567,7 +3572,6 @@ aclcheck_error(AclResult aclerr, ObjectType objtype,
 					case OBJECT_DEFACL:
 					case OBJECT_DOMCONSTRAINT:
 					case OBJECT_PUBLICATION_REL:
-					case OBJECT_ROLE:
 					case OBJECT_TRANSFORM:
 					case OBJECT_TSPARSER:
 					case OBJECT_TSTEMPLATE:
@@ -5428,16 +5432,62 @@ pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid)
 	return has_privs_of_role(roleid, ownerId);
 }
 
+/*
+ * Check whether specified role is the direct or indirect owner of another
+ * role.
+ */
+bool
+pg_role_ownercheck(Oid role_oid, Oid roleid)
+{
+	HeapTuple	tuple;
+
+	/* Superusers bypass all permission checking. */
+	if (superuser_arg(roleid))
+		return true;
+
+	/*
+	 * Start with the owned role and traverse the ownership hierarchy upward.
+	 * We stop when we find the owner we are looking for or when we reach the
+	 * top.
+	 */
+	while (OidIsValid(role_oid))
+	{
+		Oid		owner_oid;
+
+		/* Find the owner of the current iteration's role */
+		tuple = SearchSysCache1(AUTHOID, ObjectIdGetDatum(role_oid));
+		if (!HeapTupleIsValid(tuple))
+			ereport(ERROR,
+					(errcode(ERRCODE_UNDEFINED_OBJECT),
+					 errmsg("role with OID %u does not exist",
+							role_oid)));
+		owner_oid = ((Form_pg_authid) GETSTRUCT(tuple))->rolowner;
+		ReleaseSysCache(tuple);
+
+		/* Have we found the target role? */
+		if (roleid == owner_oid)
+			return true;
+
+		/*
+		 * If we have reached a role which owns itself, we must iterate no
+		 * further, else we fall into an infinite loop.
+		 */
+		if (role_oid == owner_oid)
+			return false;
+
+		/* Set up for the next iteration. */
+		role_oid = owner_oid;
+	}
+
+	return false;
+}
+
 /*
  * Check whether specified role has CREATEROLE privilege (or is a superuser)
  *
- * Note: roles do not have owners per se; instead we use this test in
- * places where an ownership-like permissions test is needed for a role.
- * Be sure to apply it to the role trying to do the operation, not the
- * role being operated on!	Also note that this generally should not be
- * considered enough privilege if the target role is a superuser.
- * (We don't handle that consideration here because we want to give a
- * separate error message for such cases, so the caller has to deal with it.)
+ * Note: In versions prior to PostgreSQL version 15, roles did not have owners
+ * per se; instead we used this test in places where an ownership-like
+ * permissions test was needed for a role.
  */
 bool
 has_createrole_privilege(Oid roleid)
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index deaabaeae9..de24727d2c 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -2540,25 +2540,9 @@ check_object_ownership(Oid roleid, ObjectType objtype, ObjectAddress address,
 							   NameListToString(castNode(List, object)));
 			break;
 		case OBJECT_ROLE:
-
-			/*
-			 * We treat roles as being "owned" by those with CREATEROLE priv,
-			 * except that superusers are only owned by superusers.
-			 */
-			if (superuser_arg(address.objectId))
-			{
-				if (!superuser_arg(roleid))
-					ereport(ERROR,
-							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-							 errmsg("must be superuser")));
-			}
-			else
-			{
-				if (!has_createrole_privilege(roleid))
-					ereport(ERROR,
-							(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-							 errmsg("must have CREATEROLE privilege")));
-			}
+			if (!pg_role_ownercheck(roleid, GetUserId()))
+				aclcheck_error(ACLCHECK_NOT_OWNER, objtype,
+							   NameListToString(castNode(List, object)));
 			break;
 		case OBJECT_TSPARSER:
 		case OBJECT_TSTEMPLATE:
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 815c7095ec..902c0473de 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -693,7 +693,7 @@ AlterRole(ParseState *pstate, AlterRoleStmt *stmt)
 			  !rolemembers &&
 			  !validUntil &&
 			  dpassword &&
-			  roleid == GetUserId()))
+			  !pg_role_ownercheck(roleid, GetUserId())))
 			ereport(ERROR,
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("permission denied")));
@@ -894,7 +894,8 @@ AlterRoleSet(AlterRoleSetStmt *stmt)
 		}
 		else
 		{
-			if (!have_createrole_privilege() && roleid != GetUserId())
+			if (!have_createrole_privilege() &&
+				!pg_role_ownercheck(roleid, GetUserId()))
 				ereport(ERROR,
 						(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 						 errmsg("permission denied")));
@@ -946,11 +947,6 @@ DropRole(DropRoleStmt *stmt)
 				pg_auth_members_rel;
 	ListCell   *item;
 
-	if (!have_createrole_privilege())
-		ereport(ERROR,
-				(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-				 errmsg("permission denied to drop role")));
-
 	/*
 	 * Scan the pg_authid relation to find the Oid of the role(s) to be
 	 * deleted.
@@ -1022,6 +1018,12 @@ DropRole(DropRoleStmt *stmt)
 					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
 					 errmsg("must be superuser to drop superusers")));
 
+		if (!have_createrole_privilege() &&
+			!pg_role_ownercheck(roleid, GetUserId()))
+			ereport(ERROR,
+					(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
+					 errmsg("permission denied to drop role")));
+
 		/* DROP hook for the role being removed */
 		InvokeObjectDropHook(AuthIdRelationId, roleid, 0);
 
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index 67f8b29434..04eae9d4e5 100644
--- a/src/backend/utils/adt/acl.c
+++ b/src/backend/utils/adt/acl.c
@@ -4850,6 +4850,10 @@ has_privs_of_role(Oid member, Oid role)
 	if (superuser_arg(member))
 		return true;
 
+	/* Owners of roles have every privilge the owned role has */
+	if (pg_role_ownercheck(role, member))
+		return true;
+
 	/*
 	 * Find all the roles that member has the privileges of, including
 	 * multi-level recursion, then see if target role is any one of them.
diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h
index af771c901d..ec9d480d67 100644
--- a/src/include/utils/acl.h
+++ b/src/include/utils/acl.h
@@ -316,6 +316,7 @@ extern bool pg_extension_ownercheck(Oid ext_oid, Oid roleid);
 extern bool pg_publication_ownercheck(Oid pub_oid, Oid roleid);
 extern bool pg_subscription_ownercheck(Oid sub_oid, Oid roleid);
 extern bool pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid);
+extern bool pg_role_ownercheck(Oid role_oid, Oid roleid);
 extern bool has_createrole_privilege(Oid roleid);
 extern bool has_bypassrls_privilege(Oid roleid);
 
diff --git a/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out b/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
index b2d898a7d1..14cfcd7bc0 100644
--- a/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
+++ b/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
@@ -55,7 +55,7 @@ SECURITY LABEL ON ROLE regress_dummy_seclabel_user3 IS 'unclassified';	-- fail (
 ERROR:  role "regress_dummy_seclabel_user3" does not exist
 SET SESSION AUTHORIZATION regress_dummy_seclabel_user2;
 SECURITY LABEL ON ROLE regress_dummy_seclabel_user2 IS 'unclassified';	-- fail (not privileged)
-ERROR:  must have CREATEROLE privilege
+ERROR:  must have CREATEROLE privilege or be the owner of the role
 RESET SESSION AUTHORIZATION;
 --
 -- Test for various types of object
-- 
2.21.1 (Apple Git-122.3)

#86Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Mark Dilger (#85)
1 attachment(s)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Aug 31, 2021, at 6:41 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

<v6-0019-Giving-role-owners-control-over-owned-roles.patch>

Synopsis:

The major change in version 7 is a reworking of role ownership and the CREATEROLE attribute to make it no longer a near-superuser privilege. This new functionality is in v7-0021.

Details:

The changes in version 7 of the patchset are:

v7-0001 is a new patch that introduces a single new regression test covering various aspects of the permissions system surrounding creating, altering, dropping and granting membership in roles. The functional changes in v7-0021 do not cause pre-existing regression test failures, not even when running check-world, despite fundamentally changing how much of this works. This new test adds coverage for create role, and as each patch in the series introduces changes, is modified to reflect them.

v6-0001 through v6-0019 correspond to v7-0002 through v7-0020 and are mostly unchanged, but are updated to apply cleanly to the current git master, to fix a bug that was present in the v6 patch set, to update the regression tests for security labels where CREATEROLE is used, and to update the create_role regression test from v7-0001 as needed per patch.

v7-0021 redesigns the CREATEROLE attribute to no longer bestow nearly so much power. The ability to alter or drop a role no longer flows from having the CREATEROLE attribute, but rather from being the role's owner. The ADMIN option works as before, but role owners implicitly have ADMIN on roles which they own.

Roles with the CREATEROLE attribute may create new roles, but those new roles may not be created with privileges which the creating role lacks. Specifically, SUPERUSER, REPLICATION, BYPASSRLS, CREATEDB, CREATEROLE and LOGIN privilege may not be granted the new role unless the creating role has them. (This rule is adhered to but trivial in the case of the CREATEROLE privilege, since the creator must necessarily have that one.) When creating a new role using the IN ROLE, ROLE, or ADMIN clauses, the creating role must have sufficient privileges on the roles named by these clauses to perform the GRANTs these roles entail. Merely having the CREATEROLE attribute is insufficient to perform arbitrary grants of role memberships.

The INHERIT, VALID UNTIL, and CONNECTION LIMIT attributes are not thought about as privileges in the patch; perhaps they should be? It would be quite reasonable to say that a role with a finite connection limit should have that limit thought about as a "pool" and should have to assign connection rights from that pool to other roles it creates. Likewise, a role with a VALID UNTIL limit could be constrained to only create roles with VALID UNTIL less than or equal to its own limit. Perhaps a NOINHERIT role should only be able to create NOINHERIT roles? The patch does none of these things, but feedback is much appreciated.

The docs are adjusted, but drop_role.sgml may need to be further adjusted:

<para>
The SQL standard defines <command>DROP ROLE</command>, but it allows
only one role to be dropped at a time, and it specifies different
privilege requirements than <productname>PostgreSQL</productname> uses.
</para>

I lack a copy of the SQL standard, so I'm uncertain if this patch has, by chance, changed the privilege requirements to match that of the spec?

Attachments:

v7.tar.bz2application/x-bzip2; name=v7.tar.bz2; x-unix-mode=0644Download
BZh91AY&SY4��9�'����|������������@�aD/�x�2��`��}��g����^���U���l�j�{��s���z%��x>��U�5���{�����z�����uj��-sN@+��`'�}����1(�@����g�}7��eWs�����B�����p�I�o!����f����yR��AT������}a(�YH�� S�S\��� ��5O�
0(��e��Rkl����{z���*IUzJ�9���q���$�=���h�Y{�fe��]pv.e=MM����.��w�[n[�{�u���v�[]�F�{e����=��=����o;|�^��UyE��YET�r<��_}������/w��/{����U�Ku�n'������UY�����@�����8�����u����V��� ��>����0���{�5��������s4��:\�����uPP6={
Q��w��;l��i������kS�C�i:o�s+{8T;bS]�\����ka������h��]m�Y���
��l�g0%�I}�v����
����	z[m�Um�������.�l�d�,���m����_
:y{��R��Dm�&K��e�1����������v�'M���jS-o��{��;LZ�6�N��J���]4���������^����	>�D� @�I��@	�m
M���
6S1�jh=F����4z�Pi�"D@����F�hz�F�h$�R(d
�i��@@
�4��z�"!4@�"�&(h�SOD6�&����A�&�xS���#H������H@��i12i�xL�@���{OT�OQ�S��hhCG������(J���I�����&�BI��j��E�6M����NfK�VV�LeA�*�Y*��F��r����!To<s�J���`�
�
�TmQ�����UQ��rRQ1�ij��[;��n�i�6j�V2f_��]���U������emU�Aj�%d
Ek�v�L`���A�wA�0TlTH�QUP7�`����n�v�=,.R����R���9iHj�����f����V�mj�{����'J�sk��E�"*e�l��k�Y�F(J������F��I%B"�H'������^����oG�����������l�YY���3jR�M��hM�j���������������F����F�i1d5d���ZP���h������^H��\FH'���7�#cR����5�
24��Je1�X6����%)0H(��\�$ED*0�7u�TZi����~�/]���������g�����/~8!U�^��
��a��c��x�z�����C�����������u�	:�.8Hv����R>*����=�xzF���F�����<M��J�n�I$�JD�L�������M�jG�n7jr)>�D"�*sHIBw����@�����*,_��5D��k��PkP��T��,�;���_��>���L?����xF�$1��a
�4�M%�����b_S1���k�t��q��Q����t�;�k�|>�~������Yadd�'�������
�4�\��\��� >��������o�5����@�o,�e?y�|���s����|����|������d������-}��=���k}������+�2��C+�2���+�3��2���)jXea��VXR���VXea��VXR���VXea%��"X�b%��"X�b%��"X�	"X�b��VXea��b�Xea��V������VXea��V*)V
�`8�������zx������==8x�'��{_��K,D�J�+�2���+���-�mKj[R������-�mKf`h"X�a��VX��+�+	,D�J�+�2���K,R���,D���D��K,q�����V8�^"X�b%��"X�b%��"X�b%�V�%�X�b%��"X�b%��"X�b%��"X�b%��"X�b%��)XIb��VXIb%��)Xea%��"X�b%��)Xea%����V�%��"X�a��4r��+	,D��K�2���K�2��r�$��K�2���K�2���+�$��K�2���+	,D��K,D�J�K,R���+�$��+�2���+�4�PR��k�V
���`f`ea��`ea��VXea��%��)Xeb�X�b��VXea��VXea%��)Xea��VXet���N8t���N��K����^Xf`ea��VXea��VXec�����VX�9x�b��VXe�VXea���"X�b����XIb��VX�a���"X�b������VXh*
��hXJ�������^X�b%�VXea��VXea��.W�X�a��V*�)Xem���?c�����	*���s9U������a9$��.�9�N�!2I	��$��$��$&I!2I	�m��d�?�B�Y%��-�In�;��K|WCw4��d��$�t(>�9�I�D�U@
��	�y��y4�[u$��n:�.Zt�kRt�7B��������>(s���i���S��.�R��bRD�U�4���#�-K$���[��&UP(���&�P����z���k�����8t����W+�r��+�r��2���+����V_<�_W�.W��|Xea��W�.W��L��y�(	2F�X+��A.
P�s���7\0I������t�2&Io�p��&I����D�U8I�PE�$��%
��,��d��$����L�A'	-��9xIm2Ki�[\�u��\�u���r��+��GQ�%��(P�p�#�����xI}r��+�r��+�r��+��W�d��$��%����y��_47sU��^����`;�02�y����������{�W���+�fW�.$��%��0D��(P#�
��NVXe~����{�W�����%��8
$�R�8I�2Ki�[�S[[q��[O�������+�_������6�YJ��1�����>n��o���R���J�K%%�RK+,���Z�VR�T���e�%J
��*T��C�b	��4�6� ���YJiD6�z�x�{�z���=[w��cy������[����������{m���~�mV1xJ�@	$n
��J���BY%�PuhU^@�$���`^�$%�����^�����p���Xel�2�����x����2����w��y��~)|2D�@8L�����$$���&
�$���z��n���y�z�t�o��������`f����*BI%
^(	��������2���+y����1
��$�(��D�/3	�U��_g�%���c�V>���W��JF
�Beh���]R�v	�K��$b+I�����M��*������L����������|�������:p��[������R���+�2���+�2���+����G���xea��VXa��N8t���N8t���N8t���N��-�'���y����~����2���+�2����x��w��+	,|�3��}�z#��VXe`��^X����x��+����x���D�E�/,b%����/,D��+	,D�D��X�b%���3AK�O���#��aPT	�������'�j�+�Xec���x�	�VX8O��;�a����#�W������|������xec��b�>�5��+�2�P~��+�++�$r�K,D�R��>������*
�|�gx�����}<_�"X�%�����_3���V[�G���~<{���|k�E �������}1��}*����������O������<�C�{���t����Ck�h|���j����� �^����������E�kW�h��V�4sm��=�&�Y^�c��
)O"zyH���m���;"4���a��jUN�E���{�Az9;pH?�������s9D=�mC�9��8��*�������7���,D����>���5d�R�PIc	~����f�YP��d��8R��5i��k*G���@|C[�LF��w/ws��d�z��_R�F|^���73�����x���:�
��Cc��	1@�3~*�����������+�9����1���/lm���K�k�����m`�l|dF^��G��ww^�w�����i4J��Qj���fURV-b�Z�"UAH���B�RUZH�j���*��H�R�I#RJ0�eX�IZJ��,��Z��fZ��[R[)>0�c�D}!��*����C�O���N��-a2�u����T�I$������'�9�?�Q_�+JGHU!a�Q1�����|����v�3���m����K]�M������8UI��D�\�J�O��O�M�_�u�Q��������O�����@tz���c_=tF���GupP��V5��e���2,���m�RD�-$���,���C4Il*n���>$i�r����M������*�VR������$<y��������9�l@�zK$;������,��*0�-0�
0��%��n88��;h�8��n�mlp�Ye�#N
�5b�-5jDp��d�����X�Zm�N)��,0��Sm�'��8���=���!�O���'��}Qk��Z�������I4?l�d�d}jJ��������.:�}el_��+������Z=���D��p~�]}�&
�\r��2�����z���E������G�9�1�	D}���&�"n�l�F}����P���/��	�d�����:��jd2�9�J��\+�+��9��y�U
b��0/�m��m��
�L0�����c�lwV���9�����_ K�^���t����$���[c���m��9$�I�8��m�T;�d�"�/�	IdIC��-iX'9��
������a]��`X��	[��y��7����$���:d!!gkdn��2�d�Nd�'�M�4Nmsz�����L��3�
�*��C�X���A`m���L`3�M��3P9�wvKVgdtqUq�b�81�9�`��p%*����`����Z�;tqUqR��81�9�`��p%*����79�^;��'����::��AwX�f�a���Z��0I��l�������'����GGUWU!��.��l0�6�U��	0���l��79��/$����N�ye��$��>��x8�/4a$�b�$	#��[WWWWF�t
�p��6i+�sa��M��4hi1���SF'G$�U[%l���a�"Ul��v�J�9K��e������rU�sdpJ������d1&��[m�����
m�A6�,��D�Az����]�6�i~|z���OD%�+��j��~z��G@��;a������}V��W[R�����k�&`���0��q,��h./g�};h�K���_��Y1z�{v4�>t�]�L�E�X6�q,��h���0��z@�_>�g~7�d|��=�(Y�;����f��#lQ��}&��j�[������,���U�����cK�������:AxM�FK%��"�j��	RD&<0(J�[����v��K7��vI��������7R:�,X�G@!��X nL�%M(#&�����	�!��������i������r�.���������0�x88;�td{�y�3���w0��=�����YL�ztms]�Td�F�5����D�+15DZ��j�d�����S��^������C����H�m����������2�-�m1�m����M+IY6����,�[��/��[���������O�0~�����Q�������1���ooX�VFbX���������EIIRXy}�x�$�x�����~s���_{����<{�b'�*�eKa�#��b���=I�*���I���j���~��z,!��A~�J���u9�����{��w�D �*|?�e��z����m���{r?�����I�Clc��j������i"��Xz��9?������'�O/k��?O������'�{,��K���VY/u��G��u'��k�������:�-���G��	��x���������	$��������+���>����m�I�X����a%�7�iv!lH�B%I��3N����w���k-m��������e�����k��a���]���M���b��dy��)L��e�S�a��Xe���2��9z=��b��UUUUU�_�����tW`�T�I$�JT�e�Ye)*��������f+�}�� ��Z�l~o��S�%D�������������%����c���rH����nk�P�3�+���5Sb
��	��t�n�]C%�b�\�NA/���������/M��Q�4��C��M)Y���#,1a�a1;}}<������]<t��=��@�o5����M��Uv��I_��D8r���$,��0��Z/M/I�e��k�����_����3)@4�k�O�����/�b�?D-��%}Gq�����-�������}E$�HV�&�w���Y"�+J�����c<��h��_q:m�`�U0;������1��7�)s���~�������9A)�R������q�� ����$���M!l��A�
�������CA���'a��������k]�y�Qt�V,�$:�o�K����;r�A�����KL��m��m�eu7����3*��M��V0�W��-�Wn{�����7�o���{�d�j��4��g�����M<>|���b���&��6�%Dh�D��A�����U��%���%�����������^��]����w�u���b���
iF)����~~uq��^d�������/���������u��_���@	$V�  �j�����[E�F����y~o��� oP���������HR���	{D|T��-Y�X����;B����.���k��P9��{�����%����'�zL������! ��I���GM4�`�����x�'S��M��%}��5H���O�]�����Y���L�m����@��X�"���u��ud�n	H=i�ve{�Z����F"��dX(��� �7���i��Z�Mm�(��(���q�~���I		-}��,o���>��^���b���g�	M��=B��������0�����Q�8O��92pr<A,A�V0^��NR��@�RD�~�N�@fg��Hc�_3i��9r�>?�3����M@���� �	��I|�t�hX�Z@e�MY�,�W���H��/� I$���|o��.$���D������S��-�p9��~������~JP�n5�0G9~Wt�h�Gv��l���gMb�f+��K'8�8xgh�a�M�v�����:|�3��U�r](�F��r�=��9^>�������HA�/W���fif�����%$���U�r��E�X��B@�|��G/
����������LKy<���\)�Z��P��'�yX��	mm���Z��,���,�N^� �E������s�8C���
�
���fy�?�����Y�:8����nU����~O�����\@�����$��	�i�_�� %���	�x�
!����T�������[�������54�3��/���9��xF�Y���=�W���{��I-q� K��_�}>�?��A���� ����X1axv�yc���v��En�P�U��l3�j�a�J�������}�������vBU$P#).��X�a�^�d����m��amW�n�tv	�����{�����!4�
���H�9�$����������*b�I���/0<s����	��H	�|�$@yD"� ��,GH���	��$39������������$&��Y�;�"�#R
E�O��j�*v�.�2D�hkuC+ra�����o8�m!D������
�5c�YY������`��Mz�a���g?
������c$D	�V�6��yvP��!a�Q�"AA�`��h��`S(��%:�?c%J(e�!+�(��R��R������tF��z�$����X�H���e������>��(��
Pd��T��Yk`���[�3J	��#3�H�������93`���d��NH�1s<����E�{����;Q+o��mx#�a��Id������������������Y,��d�%��d�%l��VY+%e-���T����Km��Im�����%jK%�,��Im��d�Y-i,�K%md�%���jK%�R�Id�����K%�Y,�K%%%�,��,�K%��jK%��d�Y,�K%��d�����),�K%��d�Y,��d�YKRY*��d�Z�*�d��Y,�J�*�Y-i,�D��R�(UJ�VD���G������^�@��[�H#�G4��D�H�$�/�6�k���^�G��u������A-�#�2��h#�CA<�E��B�&�������y�T���������������Eb�N`�BfY���2%B'���"s�]v���K�%���%����>�
Vo~�����Nn2�`������p�I����F�i��4�r��*
�����{��S�M�HL)G4��Rx�lT��d�r���W<W������.�S�qGt���
J%���:�������
��4Bwb��{�]��'W�66���?�=��m�-�.�AE����X�$�P��}�������'�E�u��R�fI}]C����q��� J_��_1��}��0����^�/U�V����{�E<�|���=I�1s~c.�4�a�gJ,��*�Pu.$$$���e�/&���X���!���}��p�pG/�>kt�c>(1�:�)�^�����.��{��9W���g�~,c1:����BF��O6L$���W}l"M�b�����1�?4��34��4�b&1;^g�^�(i		%j
�����=�4�q��$p �;��������	VN�U�)m[��������cm1I.=����S���+�\}}�zqgf/�y��GF���\r�w���yYhb�`6K�P�W�����H�^��r�	�wm�����C��2�e�iu�R�����J�(�9+����0���Ijj� 3�!!j��D�9iS�{���N�Df���4b1�M
�`�1\��YI����(O6����5���M4i3"�)-�H&l�Ff���E�D�M�<A-�bX(Z�%DD�F�P��@����_�g6�Pa���~��C��I��p/\���G�����G��pG"������			*j�:�IO�H��W5��@$�y��u`�;�	~�	b�1y)/YC����'b|���VH4��k�|�.��Za0���~��
S���
���]D��yv�[����%=���~�T]Xy�ID#��B��:�%�p7�*���"A/�>O�V��1i��[����X����
lx�G� ��#��1\����������6�����5��l����������$%�4����� �ph^}��P(��W�Z+���EE����nj��[�Sscf���l�8w6l{5�1i�" �H(\�``�����l������{$��5:���NEw�0I�����U��}���~`���!e.M�8�&�S2�a]�?���������$=s��d����C�O��5kYkg�w�p��<?���wt��c�NX�������c��l�1����[��_��Ww����U
4*P��T��(P������k+T��vm����r���5��N�����m�������^����N�p����?��\����������5Z����\9c����r�l��k\����S^�&���2wr��������+���i��,��^�o5��q;9v�;:c���-t���X��
�wy����lc&:{��,r��������8u�gxvz9xt��8k^B�+XYW�&L���E5
SM��r�{����f1��;���1��fOs�X�b��kn�{����fU������1������oWZ�t�y���y��S'����^n\��G�\����U�p���l�vl���LV�l�����^S�v��9d�MkgMp��'��9c��.�k�O7-z;<��:��NZ�c�N�z9��*��c������g3��O&+�/^��z�t���FN������^5���Z�d�(*5��PdY^�Y������o�z�m�Q��s��VJ:���w`R%�fc�z:'\��������_��}Z�I� �P��Lg��0�5a}	�� �o.�&��d������q��U	0$���	����&f�/�n��i�E�II��&���8X'��
$kl%k���R�
���2�������_�����;�w��Ca����1���d��Hi�%���`!1�^�K��sK?j�S�Z7'%�RR��=R(Q�H!DfA��2�S'�L �V�g:�������vj4�����D�u����y�#o��x�%;�d�A/�j��Pa�����p]h���@�IK��Y��'���jZw�Q�[�	����[Z��_L�����A�+9��m�����]H��H-��UU���8�j�E��-cd�Y,�K%��d�Y,�K$���������cQQQQlX�Qlh�Qkr�(�m��%b��,Y,X�b�ZJ���,X�b��,V,X�b�N��m�nmQb��,X�QS,�,knk�V,X��X�b���*��QX�b���b�EEEQX�V*���Z��b�b�QX���V+���EF���QEI$�,VJ�����*5��e��������]�F@���\�6��b����������E��,Et�QIX�T�J����**�b�,m�5sb������b��*f�e,TY����X�V$����$�I%E%%%%%&���d�TTTTTTV+(��������[
�O�Ni?�����a�%s��_�%��2��'��Ab��XA)R��B�%����������>���p����:X���xT~������\�b�2G���i�[��C���c�>K�[|;q"?7������o���u����a�)������������c�J�����y��;�^u�����������5��P�.�~��:zr�:��-t��S\[�����.~�����N���W�=y/^}t��;zq�<�zF�w������3���9�o	k�R��-�h���.~�����B��86~������i�n���|�v�\m���r�����=%���`����f9t���u��Z������o����~��I�^��'�%�K����goN1����Kn��G����?N�']�%��qJj`��o�<���.�)�:P��
����;��i��k�q���>w��|��im�w��u/#�/�-w�������]t�6���������r�cH��i��f4q����pX�l/"������n\�9�0	�a���@�#$�����L���H����(P�����\���<	�2��(\�L�#���g�3�<���>��>���/��;��>��<�����z�q�}����^�W����?�)�*#�=�j>fi����7�2�G4��;���t|��*�XPI��B��(I}������P�
�p��� u�Z���Vv�X�FxB?����ki��-P���#�%{��G�����y�^]�����h�`nk��������f�m��$�IQ�=���D�>t{<�C�D
q��>����C%h��u���6����_� ��5fR�6`�'��*���)E{� �J��}���g��$��Cq&�DNDC���P����L]�?�\��A@cB��9!A����I������7�{}6����l�G����?�"~���������,�G�0}[�A�D@���I�w���4�����Iq����T��?����f�pT>�FZ�jBW���Ed���Ye�o�-�;�;cEkVw��MF��5[I��d�MY�L�!� ��W
�Cl���� �����^0V�2|j��u�;�.m������Xn�E	�<��B��B����_����U��i��mgFI����Z�����������q�Oy�[��h����whK�$&��^�cB7m������	��y�]�:&[���t������y���D��Q)� ��-W��d�eX��������b��Qh��QcdJ�Q���6bY�h�RcD���Xf��S�Q�5
I*6�Hcc��Y�zGJ�>��Jh��g&
"?,��
"$C�z_��	�Z��\ZT�eW+}PY��Z�%�%C��9�S���>x���wg�0�n��������7>��}�������iow���s�����[+��Zp�L~����3��3;�;;�T�5���,#���H��!y�j�O���=k�@r�Cw����fA� �����b@6�B�<���+	I���,?�������X�?������m���\��f�a��/y�w����1�hB]��Xr���_�:�T�;�e$d����e���Q�5�B�Aeg��[M��}J�ll:.U����~,�����G��,!hE��2\�sd���a�(�D �1�a	�7&@{).S�wGN��3�}^��	^��P=�B���>�!kvQ8�+�G���;�_H�������/���������Q����y����{�]_��gD�I?Q��y�����F$I�%M����x<�}���y8GG�?Q�As����z�n@z���w�����r�y ����e?����>(����g�(�E���1�^��ylh���W|���@�����C�
��n�>c||���{j���N�g7OM�pw����fm�s;��w��y������y�s����k��������$\GVK�7	�����Gs��i]�8���I�w��._z�n�����k���������O0��}���$�;��O�4�����y��N"���S����SL9��N#E���q���M��&�6-���!.�
Iq�8�!0���������gy����%%�����������c���V��lus��tpt�X����Gw�%��Y�!��;,a�/��������������C���w��.A��X�{������sOGy{�-`����]�G����<l/�fR�
�o_*.gy�|�:���/��������5�����N��s�Z��_,X��}���4�������?�G�U��������X6b����W�W��)�.qw�W����m��b���ed��2��2��b�,�U�"j�?��p�?)j���?������$ia'�IDC��'��iQ��R	�Z�|^�:C������7�~?�z$���F�t�JG�Qc���x�?W���	��S�.����V��G
�������7��u�n�i}�h��~��k�������7��]k^�J�Q
m|pz�Vq�7	�j�H���I/����/���v���9�<N���h��<yMa��yN�R����Cyi�c�:/JDD�#Zw|:�T�������)�7C�]��:����<�C3-�����m�ey��$v5���i^K��~H����1��g�I��4Sh�>r�y��a�P���:�f� ����yG����Y=���i��}���������������VS���������������������x{f�j������8��[�<�������v���c
4�0��LE�0�����J��%������������hc/].5��8��s����
��W��<�@���H$)'���o��r��Q|�9(q�}�2d�-*�0�d\�������~��!�-VB$�~������4�0�I�2�?�����?�;�����G�=�G�2,}Q�n������NP��������� �&���\7�%��dl��S��t��>Cx��r���_�y��U�������C��X���K�/ep���^i�!Y�U�:]+�W�^p%��}m��z����4�I'�z�w�I%$�2&�4�,���������xM|��\�����N
����������UG���J��v�EXZ`�����E?����P�Ep���U�tSCQ"�CI��A��\�X���
��,|��aN��{�hS04�L�i�Ys��O��\��NA��������:�~'��d��~���{_��x�:6!*U�	a�,0���a���6�j�>���l������4H
��f8��_v�2*7�����r�d��R�u�$�����m,Z�4��}sJR��I��������E����(�8���y<����������g{�KS�&�����<p�z��Fk�����,�>4#����s��-hN�|"�4�}��-�\�1&Vu���DW�z�9�c1�K���U7�@a_����F�cO}r��j�MV�k�4�F�Mm��k���������k�\��������x���9�8G!�v1-N��(���n�KK���R��eeK��U�eG#
2la��l����aV�0�D�� �R^��)��������*i�;�[[Y5�X*T��&H����M��P�P���m��B�h���f�l�^����r��1/cu�T�<���3����f�M�v�~Bo��0������=�����Do`��V~������0�_�����$q����L��(�0�aY���R��R)�9Qt%&��V%��'����%L!�Y���y�T�S�{9;m)�D6��#�Rr���e����L�q'H6h���4$I��:���(������������$���Z��v��=p�G2OJm�+�om����(S�RT���c��9�I:�?���pC�s�����6�8S}�
���m����N]	�����A�@|���!�����b))6=�8����#����y���[������,�y����4?!y{p���
�{����"��j�)�I�Z��l��G��|��=�>��O����]z�l��lN�h���PX�CK@RG<���	�z��Dt���C�9��:���GCCAa0����� ��R������|���n1�{������9Q�c��w��j56I$�e+��I;b�V���m���b�x�,"�-��P��u��2��c�G�^L|�� �Wr�4�A�J[RR��^���%�9P���7�)V��������#���)98����4"�{k���M���)B��e��s=�{�~�P�<�k���1��<��DJPF��)���73���.�k����t����Vr�)2c�Zp���XH
`z��K��s{iHJu��s�1(�Z2
�Y�%�%A��������e�m����n��d�II��o�Cm�i)7���
s]2���-���������sd'h�[d����������p��M�6�q�g]��.�%&��m��`\��ly�}�����|H��a(cY��~��=K�� p0�p�lg0K�t�9����9n�b��3Kk�wY����SENG1o�T�V�'~=#>�4�~�AWo������xE��'Nvwlt&��bd��=0)�z��x��
���#�����9JG"%�"����y�f��?�+��K������z���Z��|
��>
�����ZX4���!e���^���zOz�(����s�!���@*�M���@F�+���	� �*�L�Ii~�'���}�����If4I>��H �BJ��XX��9=_cG������-�I&/�)��
����#8�q)S���P���A#��f�SJ�x��b����g9����d��m�Gp^*%�����o�7����7��"X���
��
R$:L����e�47'��h�J)l��T4s���)����2��K��C�a*��X�Ew������8S�a>@Fs���{��Z5rh�465	�3��d�s'�gk<�}� I8�>�#�l"�\S��OMk
�����$Cq�I��6��%19v%�x��:����t��]�g�D�E�N���y��E�]��F��hjVY�B��\�#������	Q ��6�q���R����<	�M�7���k3G)Hc�
��N�q����
H��:���1�� �R����g������\*DY���^������ 4A��u�����N��:x��������!�
���|>�+�y�/�3����7��q�����B��'87���������AP�s�F66�CH;�+��3W���m���bK11I�U3 �1�	&�I!h���c8��o*����������y���~�ETB���{�����)A�;�@Z�g�#5�����U3q�F[kL����d�1��,OZ�yO�v�DP�@`_;97�M�j*�����{�CG�>�_��4�w��z�X�7�|�f5���Qb!�]H�;�r\�g%Z�]+���L(�	��#�9s�j����3o�ix�L:n U2�������_���D<����SWw7���uN���m�����#��F��k�:�����������pA�*�5����a1��+������<��\��m�b���+���h�`�f��j��V���K�5?����������k�9�X�[Y�������%$y���z#�V	������|�"������H�h�)�Z�I��'�)��p�~�6�����=����B�v���cG��I	C�����(�8��I���2�u�tc�&�'_W{�������L�
�����v�D8����y��z������������7��,|�KC�l����;�y8�L�b��}|�+d�����BGp��;����\���: u�|?Mn �
�.�K�G7\���)g<�l_H)H9�f!��Y�L�������q+�5���i\���nk4������%��M��i��m�������'B	���H����-N�M������U��&��GC^�}#���1�h�pwwc��;���R��q�m�b��u��������V�1�K^pU��/�%H���"��l�]��v�F������?O3���G����q��Y���\]V��kO~��e�����)9�m�����7��X�vx�wi��������^����\
{�AV=}�4�x5�	�L��� �\seIS�cYch�h�^����n�-�Kw��BK_�5%[�MCm0c1;�Kc���3�������< ���Mk@�L�����?����i����w������{#��Z��	����0y�<,�p/c��+������ZH�pUOc5~���������-~�������M�"a
/�!k����w���3��8���]yg���[�y���[k������\���5y��V�VB���3����Ww����y�}���:����~�~O3�spz��k���>(��o�m3��J�-�����o��� ������?���A��v@��S�����o�����k~��4Y
#nS������,Z�.����r�;�Tr����������<��-����K�46�k�o�C&�MQs�8>0�w��;��?/�t �r9�l�3��r,t��#�g�L{�0\��.d��r�����cd8��N�\y�F�
�K!�.��N�����l�����BR�o/���6�ewo���G�q�^��`�'��	wvM�&Q>"r�$��O��O�!7��������s�l�I�, $�<6�@�+�<xFx��J$���O�}��b|W	\>�_�,���g
>��5���	^�?��U��G?R~�p��=���7�������o�K<,��O����������O4�q/W-�_{��N��Gw�Y�kKG���|wp��L@�r�%�nBC�������I��$�4����&!2�7�a_�v{�>��z<�G��>��O���	d�K���jx>���!�_Q#�6��(���G�s��1�������/����$�S�[X�9�O	-��D�}�I$��@�<��m�c<?�D��ky=��z��Q<z�����y��I�s�N���W
�L�����Q�^t�����9�
)�D{����o">Rh�P��*J)�����>��Ms��$BcA���"Ln�O��Yu�8 D0�/"��	L�&�C�P��Vq�Md���)"t�H$�@�D����>�/����������tC?ru�0,#�`�Q����b�~����[�BH����A���I����yk�I�a�R��bo�����_�zt�Iy��6Z��,���g
?'�Y�+���O�t�J�W�s�'��7
����y��_�O������K>I�6Y�>�$�!=��'���w?'�������/2�~<��_������d���������5G��a��+�?k�o��L��M��W��7d���	�~�I$�IZNi-�,��vQ3�O���p�qa$��3I}�'/�l��m�����eN)��)�v�J!Q�Y$�|>xq�����3����ky&��G���C���������{�h�$��}	��|���d&HG����G�y�E���m���������Q��T|�����
���|E������_R�W�e����Y4���!�dzx�e��I��#�VRY�^��2�)Z��?~s��:Y���"��0v�~�� }Q$~�P�%��������������/�>v��{����@����D�R�$	31���$���Y�+"��5��{�����EQ�-��{��d_���q#	q	���C?�u�0,#�0B��8��k����<$�b�^�Iv<F���?���I�=uE<��$���)g�17�C�����>�:R\?���g-~��z>�k8Q��g8��L���$���������n<'��F�[~�HH�g���=,�Q'��g�:}�8I�B{��O�}�w?s���_�����z��������M�& m�e�7!!������H��0Y%y��vM�1	��	��
���vI�8I0��'�l$�I$�����2�,�e<������CZ�$�<��	/�$p�B��ad��7��K��M@���w���_w��I8����Ns��[m�(�,�I><8��y�vYM������;�o�7���Bp��RA%�v�(;�$�9�'v�9����9�����GN������g��&@�DCHzL3D���M�����Z�>�}�������]�����/�|��e��N{���weD34����w)c��2�����r�&��d����~�~Z�I� ���?���h
�a�j��&�W�������������Q�f
�u���������g��n��YF}�9d���Q�K,���!'�I�����$��$�O���=��
���w�l�����F��!c��b�����>G�����=@}�0�v�?�H�_��?L����}��$���m���m�Q$�t�?��[d�p�#d�����+	�n�����m�������Zis]���c�����Sa�Y�<\�4��NoY�������ZSea��[f��UtUd8+�M�c�����
<�*y�$�F�O6��bR�a�{X4�1USf�DiU�V�'
���iM��0UJV+ea*�B��@!		��c�RSEJ����A!4BDd {�i�S���4�	�1�0����x�w,�N�-k�=>{�d������v�v�gd����'c�����������c#����v<�������tt}f
0�:��de����oC�:8W'���ss[y�
�\�Y{N�'�sw���\F\N��s��������0���4�ea���J���'3&Ng^.�[�������������i�62�VQ����89KL0�������NN��.�&�K�a�M��o[b�h� ��"���2e+fG��i������q6��ei������0����i�p�z�w�c�����l�+v�+a��i����������M������{=nM���1�{����64�J��a�
6sn�7l�V����uni7V'y��l�L9��l�z��1��7w�p������
1U����`�����
���1�c������x�����4��]�F���a��v��3g���������d�_���m���*�Uq�{+"�E~��{��b����r����������X�����Z��$��	
�M�j����l�?[�;���O�'C���'�%@���?����J�m{�����to�Ue��`�Ya3Qe����=�y������?����/���@�.�6;.�
R, �T���.�d�eL�����)�Ve�#g��6���rgT<$���PH6�>_+w�������0���Y%%����~e���9�q���k�2~_�H��o��_����:���#��~
?B��h>I�QSc���y�z,?��G��'����7��d�e���ZE~�����:_4_*w���{�v8���X��� ����s�:���92�I��JRRI$��k)���rL��K��O���%X�TH����2�M�5N LJ�T�R������~�7���u�>��
&?���-����o�bA?��#����}��#mVL>���}�7�sm���M�E�����ac��>�(}[��i�3"	�s�W	AT�J�J�UUUI6�dt�	9����������8&	����6���
��J����-��E�Y*���&-X�d����2��.J����j��e~��{��6�o����A���	�g2�st��&�9�RqM���t��$B
%�E�"�*���e>^/)8R�~�G�{��T����KE;��U$��0����9�����e�=S�u^b��E�}1V!�	�U��|	Hs ��Y4��&�I(�$��bL j��A���H�6N��[���qQ������=�n
�����'�bO����?\�__���-��+,;�����P*�g���y�h������I�+��������/�G���_o�!<��	�O�A$��H�rx*u��n��9���I�e����vO�^�+{���W������M�f�l����&Ri�)Je2�DE�0�32�d��j)��U�5S+����X���Aa5�����j��*���I�G�p��	���$�3�jF�Q<1���&��OT�D����������k��w>`>�!>g�l��YGK$��"�X��a!=2�����=��WK�(����x.�f=���vGz)�L��,�������N�KhG#�H�����F�<,�<�Z�-E�tF��!�Rwn������'��M��OD���d��g���as�����5��*]������������_�-V$����u�+������8g�_lx����('n�����7\	#d:�)���l��q�7�7��&�E�_7���d��W���E��7��on��N�������x){�y{��S<%��r�F)'��G>�:������"?�qyx�xr��K���>�L��>��D���T<=x#������<��[SK�/Ieb�����_�x\��iR����UU/�>r��T�8��������Z'u+b�j�|�G{��Nf�9���	���W9*��|~5�_���^�z�US�	���m	������V��������{"NS� rq��	I��>�XW��$5����2�B��U����!����U��*�Y��m��2w����6Z�Kw1VVS*Z&���RL�2�-H�MT�����6�u�����'�W�=�3#�(=PT��$���s��$�
�H���	�=�!��l��B������^�qv����J��_�q��*�EY��6�a��7�<���N�$Nd���~rt@q�$1{��c3,,�g>�<���)���"~����~��>R@�$�x��������~��_��R���AIV�A~�K,�KdZ������	�yn���qK�����x�9���Z��HR<U����_��t��#�*��Fy"�����/�/��5z���Vc++Y�fbT����|�����'�]�z��~���l����:�z����������0BI&��&��l�6l�M�d�6M�d�6M�d�6K%�P�I�l�&�&��l��f��l�&��6l��BI%�BI%&�6l��f��$�6M���K0�0�0�0��f��0&MM�Y�a�a�a�a�a�a�a�a�6l��Sf�6MM�M�30�,2�0�0����6l�e,��&�Sf���I�IRI�M�6I��I�f��6IY6l��d�$�i�f��6LI�f�6M�J�&�I$$�BI&��l�$$�BI$$�BI$$�BI&�D�HI$�!$�d�!$�I0 &�i6JYR�Y�4��I�����,�d�6M�Rl�
SI�l�&���56l��l�,�f���6l�IY6M�d��f��d�6M�d�6M�d�6M�f��)SSRI0 &M�Rl�&��l�&��I�l�&�M�l��l�6MM��d�6M�f��6l��,����l�5*$�l�$$�BI$$�`I�l�l�&$�Ye�L�,����a�a�
��$$�BI$$�l�&��l�&$�`���6M�d�f�56��U�kz$m�p4������hRw:�l���A��hG-���E��,D��_��e��G�@���_%^*���}[)�,�{���]C
����T��'���_���g��������;��8(GdW�5o�����KV��%��a����Kee��S@H��v;�TH���D7p�O���/��k��X	����Nr=���p���|	,�>w�O}���]���ZU���##Xb�����K���0������4���,\YYeb�mR""$mm��k����kh��%�u�u�u�u�u�u�u�u�u�u�u�u�u����4h5"""F�!,!,!,!,	X��b�-Vli�����b�,!,!,�����mmmX��2""$m4�#h�-��kkh���6������h�" ���%��%��#h�),�4�cM64�cM64�cM64�cM64�cv�����jDDD��X�cf���li���li���li���li���li���li���li���li���li���li���lj�-Vlj�-Vli���lj�-V-��a���li���li���li���li��F��	`q	`t!`v�����jDDD��BX�	DA��mmm%�����,���M�4��M���b�-Vli�����8��$A"""F������mmmX��2""e���i��l�X��U����%�-����R""$mH�����K�K�K�K"""F����R""$mH����"""F����[[F����R""$mb�������K�K"""F��Iu�rI%���$�[X��2""$mb����44h4h�k�B�" ������%�4h4h�h����,�,�,�,!,!,����K�K�K�K�K����mmmX��8�� F�[[F�i���V���U�������kh���6�	`q	`q	`q	`q	`q	`q	`q	`q	`q	`q	`q	`q�Z�4��M��m[m����DDAH����"""F��,�,!,!,!,!,!,!,!,!,!,	X��8��8��8��%����
4��m���j��cf�
b��������li���li����M�B6������k�kh��#k��D�]m��Iu�rI%�����E��-�!,!,!,���F��
44h4h�k�4��M�4��M�4����� �	`dDDH��#jDDD��BXBXBXBXBXBX6�	`H���6��X��8��8��&����4���,��-�]&Y�����,Z&3,�F�4��Y-50s��W��)��4�����}\�������l�i���A ��Q�����' �_Bqs�$�A��V���&�M�n
�9�Ej@��~}��st���_?h��O]Ja;�tGh6C���L���z�[�s?6���]�~�W�����!,�|�
��m��Lg�F��A�+����w�u�#�F	B��K+��-�>������H�YB��� 9Y$�i��������������d�Man�1q�������;L�*�y#\�~5X��r�=�6r����;�����	{v�"qVD��lGo��0N��$���7~u ny��q,TP�bFbHu�����:C����9��N$I��+���i^
�X���'���yJ��U�P�;��V�b���n)[�:z{}��L���4��m��(���b^����������^9���W�����!	��$�����"��D������U���UK���Uz���_��N����4R��Q~��5_����+�E�=);�}��~���=efVL��2�6�b�	��e��Z.��/�a���\��`�N��D��w�]~���D1d�|H���yG�#i��`{��]\��n&�5����2H�T�U��wq�e�=D�b,��I��o�K"Cn����q/�W������k��
F)?Ryw��c����&������u�BdUq&y��#�v���A�-\v9��W������:g����<p�1�
j�����$���iz���t$�jI
�}������a@����#�$ ���8x��D���4��4�RifkZ4�KsQ>T�?���|?�����|dN�~���A���qVU��'����Td�,?���HX���x)�J������<O���?��=�����j��|h���%z+����^u4N����%�y$��'cif��������X�0��U�,����[�g�	u��2��3o����t@���"����������'���p
��m��IeD���f����_KMMWx��f��*��m-���7���H��H�iB����3�y��>?hHC`�/BOi��[%6[2��"""IRUI?�"�Nr'��_{2�h   @0A��0��4`���������������b""""""""""""""""""""""#DDDDDDDDDDDDDEb""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""0QAV""�����$DDDDA���������������������������������������������DDDDDDDDDDDDDDDDDDD`�Zb"""""" """(�����#@@@	�.�2gww�j�|i�@�I/���?���;��C�K��R�M���yy���B�ZG����8�G�E�y�QE�yN�<�����t�R�)m_�-�_��Z�+���f����m��d�U}��?O��9��w��^~[�2K*c2^��Vl��H��b��M$3h$���9����-��i\��huJ�rwei�H�|�ZU��W������v�{DlI��'�%�R��UV��][z����6ff�����W���}�5}�5��8-kL�:�d*�
���7-�������G�����x0d�&je!���UY�$��i��$�lC�2�UUQ>�9����b����b#��c��>��@��
���d5��CY��		���������[!���!�0��J��� �DpDro)���=�]W�{�yG�z\��e���J��%�J�7��(Rtm��
N�&����.�]�7wr���� �,]YW���9�9��1��N�:�:��Y������u$u`U�w��n���.�\�F�]�"����ww,���.��l�7n����TZ���!+em�+�_��3t��3����e���rK�[�1Y$�I&�[����W��JX�+|�	�xR��Q���rNQ�N�!�km�M�$�@f�SV������W��+�xW��+��d�������������wwy�����K�y���������������wwwwww�q��w�����K��Gyd���_Z����������wr��r�jfE�� ����I0JD�)@R�6I)&f�P
Sf�$���K�^k���m[����������4�D<Hw5�s����pe+�mJ������%��R�\�����=#�+�.�^	��c�W�E^���o���}o�$�#�b'i!�;����7n�f���������]ml�}
�G�TEM3331	V������6�'�DJI���>tzsk�1e�%6������M��1��}�7�)V�X��:-kXrL��u�pR]���jZ���v;���2M)��:i%!��+�&����R�0$3-���FN	�Q�����U�.a^�>q^�G�6��Qe+���{Q���1�p����G���������Cq�%�wyy�Y���52�,IV�Z��������N��NI+fje!��l��mo{ZUUPpz�g��5@���*l�+k�Z-�_K�����*���Ba�$�rh�Md�H�HD�(��2�j�B��^�&�6$��+���W����]��<���E�_�W�T��$����+o�����@Xn;b.�w�%6�R�G-_^y�Z���=~[���M�������V��_�W��K%�H�I[W��~�m���mhWk�&R�K����;������U,9�����tLK�<����}T���]��
��&����gY3�HeHeK	`ux|5/ZVQ8�'��=����6��Rl�U�.�{3��%�mFEx���(�.��F���R^TpN��-'�	�+.����W��<�fS+o�����! HI4����L$	K������������kDDDURD5UUUUQ��UTGgg9�Y6K��ZmW�j��u��R9T�$�,��<$N��������	6l��
�%� �p�I$���S;j�+[}���z��������j�j�j�j��f���o�7n������n��Y�n7�j���z�3	d�yx#0��p�AIWx�8�L��H��H�����IM��]���Y6IX���PRM�ObN�L���-Z�j�d��2��.��Df�d��{��\)eG��G����x��U�kZ���me��m�"*�"*���
����fb��Y1d�ML��L���w����Y1�&K%�I�$��9l�[o�3Z���%w&�������
�1��������o�����N�?5��tHxB9����&C�%�Yex�[UUVJ� �I�Q<���s���T����m2�e��D0�Wd�o8�o���x�"�����mAI�
��U@//%jj��,��@d�UzO�!�j8D�"J�%G������!���kh�������y���o0;�n����u�wt�/�5J��@�R�n(n9Ja��m� @Q��LU�0�+��3!�%��\�j����t�����6�>��UUU�����k4�UUU���c�s�x���6�x���$����%����'������\z�e&��o�����i��dA	K�Z�mo��~@�fP	$������!$�d�N��}�|��`t�cF���oj�|��������5�wwr�$w	�r�.x�h�0{cA7H����s�A���;#����|f�>f52�4�c�]����&n	�����������B5���t���_���������]��W��>A��h�`�t����;��U?�������X��W����C)�����������Ee�,oWl�(��m�&���;c��|#��������9A��/oG�����~hw��Xyi	2������H�K��bG�=����
�MH�T!�
����?���*��^�lm1�`������"X���B�!��P�\d�K+�
������XH�?@�nJ�����I1'�4?VU8�Ye�IY?&I_�#$���-�>>�G�Zm�"���qY_�*l����q��tV���Z�R�V������8�U��V�X�F�J���M��.�x�cIU���'o�yi$���a*'�H�Q
B���E���Q0k��K3J�,�����S!,��H�1,��U*U�R�����WGh��j������U��J��
�������>��#�\^p�tb�}�L��z�>l�3�g���:���.3�2��W5�����;����M�i[	���V*Z������	�;x������u����'��8���vL.��\�@q���I�zR������G�K%�[.���G���B�U����_����}x-�a*b;�J�N(�{��U]��W����F�4��-��[��Wo��]+�&�6o��7f�����RX��E�6�*mR���'W��R{���.nNde��e��%B|��o�Nc�!����CI6!�:�W#��
�����U�iI}�_��3�� a���*4���T���s�xwrRG�SA�&�-$��	+���I��:@� ��Y���(�?��mW�Y+��Ia��R|=]��!���R������+�YG����>�i'!�Y-E�QT{ ����/q~y2L����0m%��EZ��K��}q��>Y��9��R��UWgdN	�T��|w���1e�<���)?I��[#�,��0=����^�",���.S3S,eDE����5��!�m����$���<P�D�h~�����D=��%�7���8�OIZ�������9������A$M�����J����AjW��D�Hga�K
i�k(du�%��?�)������Y)U�M�A��@��N�D�X�#nt��T�"���bb�L�:X��o����������)|N��$�IA+���;�� �B0;u9#AF��*c��dj���D�$��$�)h9���3A�HSH�W_;�wsGu��:�;q �9�L���-�����F�|}<���oV������6�,�/.�(���%�����������"D;���E�nC�E��Ot,2Ik���#�6�zJ,M�a��E���b1���a��!�
M��i&���QP��EB����mN��7c��*S,f�C�H����H� ���������N���z�l`,��<����������\A����PK���>���d�"����4}
zY�G�����D�}�"fd28��%�������M��{��Bt��|aMA�n�{=���t�B��%j�ej�U��y���|�}#�|8Ii%�,~1�	���tD����#2�P�����;�#�?��U��}w���lC!�C������U�ql��G�E��=�{OjR��RWy\��K?�y�l02bY���}*�\�g��5�2V��c1���7pjO<T�x�O���g?�I7����� w.���V���r"9TfRjz����k�|��lb����!� �I�!z���'�����q�g3�m��=MY9{����5�{��1�&7�D�R��&���5��V����:[rU�=�fffe���!�|b���%�<[�I)"Y�)RB�o7)��qW	�+���s�[�+/I��+	Y�Y�������(�uU�[$�7����{���g��'��������0qk9������� J��M�-�[um+m�j1R�9����{�z�����<�7;qk�7�lIHT"�>�'��)V'C�]FEX�����Klj�ldf6D["'hD��R!�����?6$��l�H~��)%
�P���T(�����d�U\��%PWi��)�D)�K��8	;t��/�8��b�56��l��VH����UDKQL��2%���Ks&1���V��^%�\����%��x�U�{��27���g���L*�9�ev�u��X:Uz�K(����J�������V�DU��	j%T*M$�2�"�Id�,���f��<�pFU�<K�rU��d%�J����l3)_�U�q�
730.����w)V��P|�Rb"������rN�U���{�*��QQE
}-���+� ����fE�*�^S�h��F������R�v��d��,lIg�0�5.�|�J��G����Wx�I"�o������D�qUc"��}������6%E�����csaLb6����\�U�V�X������fj����veg#d��R'����TTAfQ�"��"������+2��X����qb1[k�L���s�!��j����y����3)���5UT��GLa$��R���T��R�*M��e-�J���RR�%%!P�J*����5d�,�����Rm&�-k�~���Z6�:�d�06oV�Z��E���j��g.+���]����F��1�%��w�����S�����c�wY3�prvG����8�{��T�jaW8B[m��<\fX��+��c&Mr�r�k�-����mr��R�P*���������i�0[f������~����o����������P�e*�&
QR*��!��0MlP�(����J`��CE=�.�=�6>a���>R��������)���76��"$%@���\��w	d��"��l\	�.BX�BQ�ZA�D4�$*���Zm&�6�i*�SL4��WV�����ud��I.���&%u'�I�)eG��,������""R��������q&��}7�����vJ�i'���|#��#0a�!������m��%����U�K�G�z�qt���t�^�K���?K��f���O�B2���,�M`����|0��2�en�b|��2�2�2�0\Q�Q�����~��M�q�?8���=�M����(�v�2�2�23w��b�?���fUVIO�Z*�K�]��2��C��q��I4C��;#��������c�Y�����I�O�y(~y$Q�i���:����7&J-�d<J��
���"��H*���Q�Ps�yQ~�"��TJM��������!�s�4�R���f�j����o�Rvfffc�w_�o^]	BIz�_��im���'}0Y�L��=~��yw<;J�%I�����d;9�^L������6�&
;K�W��E�_����"�_�tI��
C|~��t��M��6��C�s+#�b�1]��J���;(>�������j�����5l�Q�M�2���RHM�d�.�M�4�F1!�������L���1���c�1c�c0c	�b1�Z���b1�`��X'81F�A�f0`���t�WJ�]+�(�}u�D�M����=�����t R�0}��x.��a�l����R�?[���	�S��k��B�\�%U=�"��5r���T�Vl��ET������)1l��^Hm�������d��Qz,N`Q�����6vZ�F�li[oCRV��9�il�]��� "X.���4��h*�P����
��H�H	�
Q0"��m��m���T�L,(�Bf��i��\��	he�&4
�IfW�9K	I���++<�2����p�������4-��Z�w�iI���{4o���E)���fI��Rc.U���g=����9CY�8�u�E�*C��I��8(i�iV)�V$(�Nfh-�k%�f	�������i���z�	�4�l��Y���0d%nn��Q	`D�|
�,��lf�Cm10���oPeT,-��UT�%�b�b����@YUX0������/F�y5�]�;����vvvz�wp����vc����uy<<����vy��-r�����p��O&����G'�fO�����.�ss�������`I$�=<co���FI�X����
2b'8�_9�co��r����\/�����rj��@��U3���z�U�����DCa5N0�7y���w�]�������q�d	�'a�D��]�8cc���U������U�x�]��:��#YLZr1!\��&6p����caB`�4��9�M��8�aK��s8I��Y@T�b6z[#qRD�A=�}
�Vfi;���u�������DX�m��T�����0���!���a������<2F~��O?���Z��+�ixuG_T�8%�)��*�7u�� �h$�l��qf~O2�?�6Qm��"��������
�H#�]��\��6o���:�2!��T���=����<D!�����b�
����w������!�Ws��.n�z������C�A��O}/[���OA�z�CoG������< B!�����yr��m���N�xd�5��J���&!bz��9|���.A���8 �����������l�9;��w;�\��t�T,XJ�M
B���	�*Xf`���\e��*H�L�����4���1��7����#�9e�;\��*�������:m��_@�6fe��]Z���V�W
R���f�$�RIM��5)J_�j���V����D�C���A���{
CP���g5Sfi������pY�%�K0�a,�����k�&�:�KY�,�Y��	f���;F�S-�#)[F���5aW+�F�(F��$��������2HYd���{���U,��$��J[)^'D��I,!D7$�$�
��:�qf�i�� �D�a����s��hCrDN��$�%�����Ni\�+kW��j���Z��Ko<I��3�&��������V��W�<��5�FQ�t����bfJLD�FD/�D�����:�����\A�W�e��xKR�J�|R��/�/��N]e*���Ww`��I-�[ �Al������>o�OU�,|���q����O�9B)��Ki
I�$�Q��2��l�
�,3!u%����z����������������������.ub�^l�oX��6���kz)����C�U6��g�s����#����&Xx�*H���p)��0�V�$$�i�
<]�'��ej�j3G,t�~��v����r���E2p����>:	5�BiL�.�YG�|.����U�J������J�=��y�q��'�)7*G&��I�����G@���JKj���f����+f�Z��?MW���I����3"���vIZ����E�z����RN/�����n������G����r�p�E���I	R��K�U=��,�_���W����:���O�I��sA$������q���������+!�[=���I���j���+��Ts'��mO8_��,�)Y�c���|��Up�����rfI7?x"d���?v�7c24����v�7h�v�7h�v�7h�v�7h�v�7h�v���i�F��i�F��i������n��O����e,���u�Y%��K�VeV�(��N���2��=������������\}(�X?]��6|;I
g��n�N%��,,�Y\$�'����,X�Y{�Z���|Q�\���W�5���xv�������~��dw��#cx��e���Q������?b���K��_Y�s�1%}/�n��A�I��d�-�Z����Q�!=�g�����BG�v�����e�)U2��4�U�b��|5��=o:urc�X�T����^z0�w����$b� (��r��
5&��bQM[lX�"� ���Q�e+,�M��_�k�B��#U$�i��$�RD��M�+9�7cI5��m�R��E�l�~��962	�$��%o�Q9��4D$�$�J{��t���[��B�8�
�L*��i�2�j�;bciA�F��lM�&KD�['����(�F.I�G���v�����[��_hHI�������z��{���HH�vs�k&���i�H�gh��Cd1�]W�de7V21K����ON��?�w���,O�?��=i^����Yf2?Q{u{<*�J�?���bW�����ee�Eq>�>7���P����lK�p4M�a������"���
"�����d?��m��m��I$�0��z��@c6�k�-b����wmuvm��g���$���A�����jt6�v������7���e���3���;�O&B�Yb�
�XA ��eS!���77k���G�����G���)2���_$�"����v��V(i)H-�mi�i[5��x��N0�@�k>�r�������0q�<6~R������~�=�}��G�N^��9^�9z�p��tDp�����m���G
�4Q '"�D�I���0�D�.$Xf�����$fS��
�'���m(��7���r3��)��I�U�jY��D�8��d��4�%�c9j�c������y��2wb�t�.���������1����T�D ���lK���0{�TP����1�g5�gp��;����2)���1�%���^��k�,2��I���`�Xi��j�dhn�D"%����nt5daF�Z��	���f���Y����0�#Cu�* �(�<�A�����X-��['�F[+J�M���D�u���T�v|!����~������'|���W�+,�%���-������LV$C)Y"��5kk^����R�L�Ll���V�MS[�+|$��5J]�Vz���6GjI�I�<d���m��m�����p����9����me���������+�����T��<u*���z�W��}��Q�WT�J�������*���9���b��}Z�����qF&������O�eE��e�N�LE*#H5���Ra��d,�"��!�N�$�XnT������������~���
��~G�����w�3����7�X�+,���ra����$�Y��(����
�1'��H[ZA1
����	����������M ������O��>����C�%}�Wg���$�I$�bB�&�J�^+>W�c�z_O��/5�y����B��s��'~�R$�IF��I��J�R�UJR����9\�u�:s�"&$8W�y�
a�'�POUO�VZ�Z��2���������b�d�j�[~+n�-��I��,�I/�o����R�	,mu���5����[~�%e��)������!������YBt���0La��I$�����XpY+����3�%��eU��_���Q�RZl�m~��S��5��(��k%����o[�i��j���z�c!I/�~k��M�j���l�>d7�@Y�h����MFYm����'��G�@�t����2���\�IqF�dU���e�	�(�B3	6!Q����E.i\,�d��p��eUU�rj�#�\UW���,�*GbwJ�0��i%o�/7I��_jt^a�����F���k�b�X�S`J�"tId��D`��wYD�����N$��c�<�D�deW�n��Q�Q�Q�Q�Q��c�K���������n�6�gUm�omymRQ��%$���n����S-L�elMYbi��Z1�V1�-d�J���j���#���r<O��.)��eE{�s9����{��v����,Q�zG1����J����v��.!�����R���;�^��F=�Z�4)�w?R����[&y'�Q<lu&Y�h��b��Y�7WCl���_}�elo��e���(��	��O�-b�ZH�m��r&�3���m� ���	$�a���7y�3K6�S-(��"#$��-�V�rwu�C!"��T12��[�aW�I����$���&�j�������!nR��T���B���2eX��Ra�a4B���?����W��t�^y&�3��dU$E����a�D=s���J��I7����T�[h��v��U��m�I�~~��|�)�9��Kd����RjF�N�kG-<�0�KK*�R�b�D�"C�W
aSU��y���]��N�����s�B1V��b�8�p�z�
��!��d6����	�M!��m$H�tB{Nnl�d��>o����l��$�S�HiE�X�Q����CH=)5$�:M�F�ob�,�~�$A;6�k�f��Z[-m��oj���&]l�ne����a0���W�*�Q
hs_z���������������=wv���g�]��D�
�PPi��l��Y!N�4�:���+,��2q\GE���F/fX+���|���y�P�kA!L	���VR{B��Y��W";']�x����&rgY���p��!
F),1��H��N���q$��G�4�c���eW-�|���/��wqR�C�>4��[V�-VS������~��>K��Q_^UfQ_�����WGL�D�p��������q{W�bY-���}��#�"�YE��	�S�32�+,Eb0Y��T������d���RX|#��U�!d��{c�����s/v5�++.�5�5�����u+�0����G�]R���)['2_��'{���]���H�a�n��C���RN�>L�g?�EH�RUH����O������[
�E���|���������D��x���yEYVJ����RY}eD�-��M��S�V�ub�~���o�s����E@�^�D����3b�5`�N�]�x.jw������V�k&wn7�
�J��c��7�1*-	�����SY�)�A��;ws%rv8�i�cRbL���Mv �I�M�W��^~�fPUenCrN��4�"��%r��h��	v���gf�=�!����6!����^�Rb~��)���T�?������s8V�o����Y�YF�bN�������i�0�2�^�����K�|����
UUj���_s�"4O8�%Iah�J�X"�����1�33[,�ffY�f�(�A�Ia�����Z�����*���B�E�f��d�$������Z["Z�V���UE�DDJZ�fY�%%%�R����b�m���)�Z�Y��kfZ1lZ���EIh��h����X���b�����U�P?m��$�pI������$�%_�n��������R,���Qe-z��,UL�,6���#$��K�}-R�E{�G�����;"�^U_��������
}�'�DZ���:=��4���d)dT��1<g�wI"��=z�����v�WU}r���er�v�/'��-V��<wE'�nd�X[9�VXeKbK	�S0���C�(l��G��m+����F��K���^��.p^u�K�n�����o�N�7�B��J���W{�>Jo����2���1�f�+�^[}mk�l�}&�k8UW�'���TvU��&�|��rz91��e���*��C*:����TOw��'��\����/���F�C9��o������Ufs�YNYJ�E��[[�F�h�kf�i#���iY�V�,���G�?���?V�U�-M���7h�v6���`������������������kZ
����wwM4�m���[R3����D�a{Gs��c&�%R��o
���
n<l�Dtb�s���4�*���e�����0�����<	lK��+�SN����_�.�����PC��yQ�_n���\���e	���������;9C9����s�p:U���N!��q�����n����#��A�Mx�����Q���;���@�������o�q4�����j��R�������>����m����p��]-���z
������jMl�����}<�YS4�JQ��jIH�f%�>��+���;������x�8�����gy���iYJ��*�G�le
�)\2zu'*��i<�&���&$T����Hp�m-Z�j%6fje�DDY����6��WVyx�':��^g�s�}��&������{����5�|~p���y��ZjU�U�F�����jd��\Jv�I�#����y����d�L��������X��������)���Sx��%�$�������j����y�QU�DQ�73�d���p��i����LH�L���������4�S���������S�S��;���r����R�:�[W[Z�"�dV��cmUe�J���I�����1�8E:��l�t

���n�4$���8

���������v#��47F����h��EV����k����]����5���bE�.�����aV�peJ��T����T�)Y��]$��tU����������/��{>�c,�&=OLm�n/����'�uB�{W[uG�W��c��<l�6N��`8�'s�'��X�	����6��fZm��bM&*�L���TRJt�S�%[���,?5�M'9'�����+�fQy��Q>���V�����wu'���ee*v��
�&k�-+�q'd��tnuU�g��KU���/���j�p�u
��}����M�C�6.�l��-e~:�����81���,�+3U7,�R�G��W.����c�T>e^u�W1�*N,T�����{l����J��IS��e���U,4�����6�w���m�H��X��v��j��V��Y#^�}3���<�����kj�VU��X,M�51�bM�
�,0m��1\+���i�F�v�M�57c����M�57h���tZ���d�V+�9�68Nu�����StV�m�����8#���J�R'�2qO_O���"�g����R8��]{{��1%��Y�o�~�VO�G1��>�3����e�"��+j:��Q�qfN���kU�.z�
�c�:�T%D9�d���h�n�
�n;���z}�Y#;��-�m�[����v��1��J���T�G��;L!��$io�m�V,�2���71
Y�u���!��%`��=\��"8U�;�2��t�mq�[i���noUK���y��VnYe�E*�����I6J\q�4�jChE �JI��#�������a�'�I|���Ml���}�Q�j�i_���\�=D���]$�a��c�*�I����<aP��5��b���;g
� �
@h"�-�JEKK��f!�pI�b-�`������C!a���h�����"��$�.�u��T�Hjk-��k��$�%�Y���LX�dZ����E�(
P���KJ�jkd|��.�
�o�ds�)]��_�R�e��y����Xu��.Z�B	�')R8!�C�7�
U��b���b������4r��Ij�I�	���$I����v��j��dpq�l��4�a�Xk�r-Z��J�e�[����QFl���6��]�'��OrRuo�Z��wr���RkZ������"�HK=�]$�G�W��%{���U��W��=����Ec
eX������2�KU]�����j0��VK�����N���)L��o��<���v6#\�Ja�q���������p��h�c�e+��k�k���Y��D#m]��R���;<�"vy;<�"v��qeeeq0���###��d��F�����f��q��<���wkz#�&6��c�z,�����#�����w;�45����6�c�Y���B'w����QX��m�%�*�-��c��.�v;�xdSV8l��2l�K+MM�Yf��+^�7���^tG���UZ��D[[D�r8<�;���
�go�p'�������3kM5��y�r"F=�HN/"� <q9�F�4��E�"[8��#x�8��,���cNL�����V)J�Jl���l7��jF�����6����e��e2��R��B�J�9H)�Y%���d�X���M�����U�LE�eR^�"%-L�,�$���2����6���k�YQ#����d�ur��J�d|��_���4��U�j�wwe�������8}���~i�E��7�p5����ffX���,��!�����C����>b�9|��o�`+��|�����2R�_V+�'#0��@�!8"!���C��8����C',4�"�
��-�e,�4��ZL�&J�d��o�m���������"4�R;��������:�V�������I[�0Rl��0��RL�	"gU���9��F������#h��.{����WW�������x��J��A���,����YL��J�.5�&���k~�M�u}�u����Y��9w��`��6J���&�P�D��c��6��^I
'�y�*�!�!Ru5���p��d,��G�	gXHbEU�R�(�W��GuJ��:�/��?fs$��b�l�*�E&x��(�wSh��_^�76���mQV-�5��;�-F���m�i-M����mJ[�aU�����p�jmkm[��j�"#$��c�!�E�����6��l��[.Dr��Y�g�UUU*$b:%S"�HN�i	��%�kh������f,&��Ee&�6�����$�l��s�:8XU\�'\T6�D�cSP�1��Ll��$,�]h�vY�gu�\��t���M���
���)R*����ou����"��E�*����a+g����?~���?��I��Z��m����e�lb�d��_��)�[�}��iOm��&�D�$�,�����5�K��M�95����7�`�\-D�D��$G�������1�a�ee"���T8�aW�>s&�<$�~��Fnn ��R�",�&����Y�� ���335
?��_�U������&�;�j��-Z�s�����q��dO�_���_�Y]��|pf
���Vd��f*�&d+2��&d&bE3(�$�VZff3��c�qJ����b�IW��%v�R}��,�����ee
�����R���F+������2�_�`$�?�|�P����f=�-��b2A�J������Bs,�
���Y#p���XK��=q���p��meB��&V�1��H��"��-DG�c�Z������� ��"����U���(�1P������~�����#�����-�>F���*�!�|C�����P$���W��K�+���J����eY�e�?�!�:�H�D:O7}��u�A���$P-��q%~���[�,���X��������{F�z_��,%%RdT�a`�W����A���.�a}�
�1�1��i/�I�K�B�M��cl��6��?�����=t�����,���R�)w��jK�S)�mFIrrJ�(�=.^��Y$�m)��ZId�ZK�]J}��>����y��OF3�X�����a�"�����eB2�HB�� �r�����2d��Jm����0Z�d��`�XA*�*%kT�Z����~��x-�������e���)3F�`�Mem��W��{���y�V�~�w5Q��2JY$�����)gbqJ��K��
'e{�����ecw){���SV��z���OibV
�?��Y>�Y�>�sI�O@���\�|�U=�=�2{
�'�,��#���*}�D��������1���C��w�.Y��	�l�����$��h�Wi���G�:���'��D�6gq2��-�3)YD�t��������eG���x���@d�u�����5������~W��:5�F���*)�bVU!�`
�;�����a���j���,��1���6��$�M����W�+������fK��TB~0�F$�������^wX4E%d����������"Rq�H�bM�m�iYN68��JW[
��XOn������e�Yd3�������c�7+|+UW�}S����9/�m��F�,�9\C�8Xz����uH��Q<z��oT#��O�,:�$�J�3$5�t����M��6v*�W?���+D�P��7�It�n��������$c�6�e�aY.U�j�����,��2�������^�z��'����N���#d��A�(bCbLK���&��lIog+:��v2��
Ij�XVC�n�S!b�hM�����,	k�F�$��j�j#�,���$����["
��,7C��������*�)wN�I�n�\7��,+$��������|t��emaM�`�|��t�'�!d�����T�����t����+U�5f��Y%���U@z�A�Y>�IO�]G�������������R�gZ�X��3SJ�j}������
B��i"<}>���4��E���_�J�����X��Z*�z���M4	`@\n/�$N�6S���l&�#;H>B G��N<���D�n"�#�������V��0����������d2&D�����f����|���6�`y��&���.��)h��z����O"�2d]��%I2��aKE����t�i��)x�fL�d$�l��i)��ef��d>��;�n��gM�<�I[w8�DTDUTDUc�H�Cz���q�%�[rK$1Z��$�C�X�e&�-r�����G2�H�����Dy:l����;&vL��2B�[}Z���Km��jfe$�2Z��[J$�$�JJe�fY�)�IDID��V��R��������?��m�����������)ZW4)��~���-�y��=8��$��;��Z�^2�Z��G�XS��^�����1|��,�$�U<����H���"�T���1{R����g(�KJ�!�*b���F��w�VC���T��[�mZ���z�;`����>1�q1�<�+�*��[*��2���LY1`�lDs��������d=��Xk�K
CY�����Xb�!a���Xg�����6�y�}^z��W-�jD�$(B����T(C����WW������Y�T�kk�����Z-L��kZZ��
R���C���eb�e	b�2[��&��K�j���������\��!�]��I���+�x�z= ��\�r~���.K�)v����F+���Qfs)=���'�Y.������f���lZd{��d]�Z����D�=������E���y�CQ�Z����W������u��EPd����o�A�N=�"w!��Q%U�lB=[D#�G��Q����Q,�,[E��i/(��;P�k��%���N����$�=�\J�2YV�0VIXRuq��%���E��U��xU�������9�-O�/���[�J����}�O�9Q�b�c���z���}iO�o��������OezY,�u'��+��ge{���;c�>z����jU����W�������TH[%,���a%�F�Dh�a���md�"MU"-�d`O:,,K
Db#YI��7�	L�f
���fQ�����yEG�_�h��q/��K��K�L�1�x��;�\�h���A:$����;��&\�$Z�X;E�;��2���Y��*%�8H����I�M&Tp8�*[E�,A0I�d��e]�RA��"%R���5{�s��?������>��yl���A�)]l�m�v�:��Dd�}��|t�e��\(j��B�&�.�����g��2���\����+H��h���n��f��R~;m�c3
��y���������l�J"�v��B��
�@]�l�dWR���E�v��B��
�pz��pz�����OL)����[�

���EF�����uv4�������tuse�v��sz��{�[b�s,<���\.��e|�m>~��b���/� �4`T��q:�{����B�9�X�;�,���(�V�V��Z�������/j��h��fd�h�6�w]j���E*�5�@���|��������m1�Q"r}	��r9���-���GG@.2B�B�lg9`e��IIo8!4�H
��s�k��$�z�bp�W���a�Zc�&�aqd��IV���{jmNL�K���L���M�������2����Yc'���P��L+�l��fH�O�S!�E"P���F��l��y��9{�Z�-s5�}�7k�J����M�]6���5����x�[r�61�2ws8p�kg-kr�����I��&�:�p�!�������'.�f2p��5����S�V]:U�9A����/�$�I$�D/�
"A5~5%��t�QBY)�	;;�T�=!�$���.�I��S�
��3�	�J�{�m������R�Ymq��=f�THL-�����g�{� �]�U��
v�pm��h�������r����c�4��.�FY2����H����1d0Y��\tJ8��!������g& ��<�Vt�E����B���e��������X�G8L�#"7���6�+LLi���wl���	$��A�8�������*0@@��B�QBA$v�5�����L#ynB�DB�-	l0���	ZF��Q���q������@�<�6x���mgv����(��D)H�Q �H�Ka�DpJ�0�*V�FA��E	��6JU��x���mehn�� D�i���,�����M�bU!�m�5��v��;���8.+,���	[+$��MI�d�f9��8a�����7rb�0��cf*���cf�U6I�HZ$S��Mm�w<d�y�;�1�]Z�<�-,�$fffX�������;h�i2����v����N�|x|c��w$��,��rmJ_g������T	��$��	3��QD
AB�������Y$�I$�I$�9��9999;����d�wwww.\�r�]��r��^9�I$�I$�I��R��������J�lfU�I^r\���}����8�~���ko�m�;���L������hU�.�R�K�BI��J����CZ�}�d�7I��U��|U��r^�V��7G�\��������|����n��Q[�M)�H�p�������
��r�5��j>����
���u�h����j�<�_(�E!�Y"n�R%E�R��H���-C���QN�!���QcXZ�9�-N�x�De���������;�X���y���i����*�_�@�t���b>q�4�2U���[+W�[}�j��ai���"�WJ����,5��e�3)^>���f}p�|�?o�sS�����ol��>}�W)�qF���u���Ml�|y�u"��L�$[X!6q�)�W�/���\gV��8>���%�bq*���V��.FJ�UE��	]]�����UK����$�oN��C����b%�,�]K
����>6����-������Gu~����1b�c!�<����,�JY---
�4�������$���#���o�_j�DR��lI�t�����UIJI�1 �������y���kmf��32K|~p����f!��a��C1
*�23"`����P��CQa�T1�����5x�-�u�E_;+d��\h�+zl�����wo�$��$���������k��+WU�[6�34RA*�%d�H�����8�������a�2�<����e��&��R��[Yd��m*�fn�V�Bm�i#��"-�URjJ%S*��bD&K
	.x9��O	�\�����J�.N�����o�ev'4�b��=�W��P�IY�o��<�kt�le�T��
�ch�y�j+~�9�o��pX�DI	����#h��S�8�����p�#�5ZUr�9�E�9U�����m��m�_�a�6!���%�k$�1F��������8,a�����5Q��H0�n�z���I6�;�#la2xC����e�E���L�z�m��o����Ir���;&��E����/j,�x�x�����]�I=����]���<G�w�V--l�J�1�%l�e1���	i��a��a�����s�G;�9�����wn �7���5\,������}�n������r���P�$��m@n���k*2�	��@!VyHy*�c��f��`
�@�4 R0�������/W|�I�-/r�2JCL�2�"`
N��u�&	:��T*����F����� �Q���P��/4L�2f��>UR/����%��z�_{�-M���s&e���"�*`
Mk\�\X��
�g�Ld�c��������73[r����f��J�9�s8W�N�vc�Ls1��1N�:4�SA��T�E����&0���$���P�~
Z��6�b�Q�`����0�l ���l�4�aF����\�m�b�&K6�	�P�!�jp�" �	f*"BS�CY�*�l���u�B�)��$%t�cA��]-)�l�� �b��6�4�<U2��Vl�o� 6�)��!@����r�]0�-: ��N�K�fJF�Q�Y"l�����		��Y�Y���e�A��T�E��` B��
K.��Q��G1�Ia�S�8�2pi����,�����������4������l��a�
�aW�� ��n��LJ��nq�����(��G�.���m�^�z��� 3IIS2�QLd�����{��%�t*�W�WqF����+�h��2���Lcc+m��UVu�$�H9���ndF�
�L�v��v��
\��Us'W������*�^t�yu���������d�!K6n�s�����,"bWu���I�N�h�K���m�{�����ffe�^�{���{=��K�������G�X�E�d�aj�8����Wel��AHo����D�������y�V-%�d�v�7h�v�7c���gl�����\\�������� [�C�`����h� ��Pi12�KI�Hri�X��1���Rjr�^�F��v��L� �'���TJ����A5�1S��,G*�I9���i-32��������1d��9��<���R6,�������V�M��MYQ��.*vJ����:�;u8:��K��%��[��OL�X�<dz�I��Y��n������K/R��y�^�W���\~�\R��X����kC��$�)H���5� ����������$Y�K,����3�nKY��*
B�D�I9���Z�T���)�nU����<��/,%N�j��{���Q�����WQ;FdXy�1
�$�s�+�U�U��M[pd��������i��}��/V1��4��8��lQ���}��[K��:Ns�"��P@�7��P ��|�|>X������m+J���(� �X1j��
*��J�E�^��Z������Na,	d2"ZgF���	���Of��xx'0U����G"���U���
��������[������bLbR��I1J���2����[sp��RJ���z��ky�����F8��[�����3���5�7R�W]�U��M=6�s&������Q�1Ye�Xee����49�,�#����][���	W�J�;nB��r�[m��U{����dKk����6��Z��[Ije�+Y���'57�;��Z����Do$5j�%������K�%�]F,W�E��n�����U�+U��S�F���h���8������T*��T�n1d�V���l�n���i��(�a�mG��I��<��������+�6��/�*�+�dRr~ib���n��W�VKm�6�����=�o�}�)"�!,��E�B
Y���$		�=hG���g>u�������is�����!���EY"[$���sem�����Nn������������X��n�F�A/K����X���Q,
t���cUP��B
w=g�x���v�k=�� �v��K��;dD�	X����6D��:i%�%����1�VYJ��luqc
�'xH��U�u�w^$mb��4
I������Ylo�nV2&��nF��)^���I�J�^��:1)i��k
!�������8Q�[�_��o>���+�����D�����X�N�OE2�'�XaaR?^#
Z��!RY�!��?�3*�2B��IO�+�++��?�>�K��������G
�p��0�����d����0�o2�U�\j�b�[fKM4�WR/�]����������FP�e+�,(�Km��7k_�6�E2I4#���b���K�J����z��M�rf�#��B��E��t�Y�#�kZ��G�#�k����2������c�?�I���YE{�w����T^�+����	�$��[|c}gn�&����g)!�'���A�N�����m��mo�W�U�����e�x�UC��Y?	%�������$
h�����I��$�N�?�����9�w�d��$�Q��*��X���e�2�#h���ij-"�Id�M8��H�=���:[<�bG^GZ��H�l,*��
���~�V��������������9�*�U[m��UTX0�6�0H�05��`���"�l�����).�Y*�\�K��J��YJ���+�h�m��N-�f��r&�3�c�28�[F��o+oV���� ��GnD��J�_��r�(�~s���^������Y
��
F������O��XP���Uv��1�3J��e%�������h�I��Uj�X�-��KWZ��b���bKh�Q�s�=�lFq�	�����K�Y`%��������'b��"I<���b!��4�7���q����Y�e��:�FH��#�YeL����j�X������f�u��Z^n��0���Nl����FJ�n��n�St[V�j����p���q��d�VJ�Q�S�)$?bM���K�S��pr��)*��yF�GE�N���7�/l��JT�b*�R��V���R����b#Yj�m����_��I��4��$�Z��SMS�de���L�j�>��?���6YXc�����0�b�e+	�KiV��x�R�j�p�h��j��
�����i�8�uF
V�_��7"�FU_��cq8��7%�VXYDP@@��}�LI��I$�I$�FI<#��������t9
�����.�A#>��\(������g��n��KU���>�=n����<��������7l�ng^�o)���F�5�l������9cj�.'N.�+��8�-k8-�v��w��w���J5���Nr�����O���������n2|=�^|W�_3v
��$k���'���<=5v��Z�0��P�����x�x]�v�'
��(�[�i�k�n�(*{r�B[����{#;Gl�6M��L4��1��7����`�x�����<�����'�sG�T�����"������:�=U�E�������}�X�D��@��z��]����u�Y:���D�D8IDF{��bF$L�*�#��&�mJ�5W����,j}�:��d��}���_�����/�?��������G�*~���UO���]?��7���Gx�Sr���OVH�bs��PVI��u%��w����� ������������>G�P ���@���-
(.� 
q���`���������{u@K���-Zg�))%G�aJ}�D@����x	�{����g.����V��������J{�k��4����W h+vz��]�����A��&���)L�T(�T���@E���*�QPIR��I��n�$���*
*���[]kn����n�������{�OOv��.���#���o/S��/X hkkR=�_@���.��7�q__cw�Kf9yZ�9�`K}��:��`(����|�W���;.>�=:t5���d��f�T��W�E*h�(#��
�G�I�I$\���6��+�����@Zl��B��������yA|��GP0Y�����c@�[�5�Xy ;<�CJ}�rh)(3k���4[5leap�����@�&�#&����4&�4�$?Td��!�*��
=���#S�`�@4hi�)���F�T{T�A�@`�@C h=@	�@RRB�I�0����57���"j4i�@*$D�22"f�g���S�L����4�i=�MG�w��������y����������-;�l�v1�0�b�r0����������8����$���Y�����5*8��T��n�i�pRl*���s�
��1��US��'SGF��V�#|�?�?�?���mY�Ohu���[l
�k3j�m�fKj��<EcH�I4~�?����M~Kbg���e-"����Y#���5wd�I���?��(�0��?���ne^�o��8�?��������>�N?�?���yOTu,S�)�s��q"yB�?��C����-5���S���|
CI�&�'�'����N��~��������\��^��}����,��=_X���m�������V��1 H�}������-kh� HX6���B�M�&���-k��Z��� HX� m��$	[5�	@��&��$	B�-d���	Mm Hk`5^��Z���k�UU��UaU�VXUaU�VXUaU��-�[X8
k� H��[���k�-l���!kX 5�k`����@� 
k� @8X6�  @��Z� H� B@��Z�!kX$Z��b��HZ�5�k`��H��[LU1T�SL���k`��k`��HT�SL�������Z�LZ� HZ`8� HZ�-k��b��kX��X$k��`B��H��Z���@��!kX6�m`����k�
���@�$	@���Z�-k��[+3+3+3+3+3+3[�!kX8Z� H�5�kX��p$
k��[�!k`$-k��Z�� Z�
�3,Z�
�VfVfVfUY�M�m`���@�]�����%W��|��������/��W��l*����
�*���5*������� H��X�]^��m m`�����.�_�Z�k��U���X$wDc-����Q��E8��A�M[kA����RJ4�^�����{��x��Z�	���e��?!��i��m��k��Z��`�$32�2�2�2�2�2�2�vefefefefeT�!kX��Z�-k�-cm�c-����V����]��_@�$��k���-}*�����z�^��
����-k���^/Z��b�V�oU����W�*��FUTeQ�FT�$
��� H�}j�/Z��b��kJ������������k��U��������@�/U��Z�X�������k�`�$	B��kX����b�W|����� mb��m`���b����FVv��FUV�\sm�����>q�5$�'r����j��-Wk��X7V�Z��`�-��Z�n����������U����efefefefefefefefef������������������r�n���	�[Bj��U�� H�j�`�]��m`�6�j����X/�������/����*�>|��V����n��k�j�����~~��^����/��kX��Z�	@�$	�V�@��Xn�X-�I���V�H� H��`�]Z� @� H�V�H���W��U�~�{�_���[�
l�-LU1T�SLU0�5��Z� @�j�	@�/�Z�j��~��_@� /��Z�-k����	�Z������B=W�W����>w�;��@�$	���Gv�	�iW�W]��a��?���������I������?;���X����~r��+ |�G�]����O��<7m��Y\�z��y���uzj����/���c�~�M-�G������*7��������������/�,`����;���Ma�0y���\��_3��Q��JW=+���l��0k��W�]�]wR�[�X3�3�^���K�<S�:�_�En����F�L�
�l*fH�e���b�aUl�l�0�J;����6-�62I~4<O�O�����0�`,F$��9&��������;�o��.,W���s7�q����G�[im[l�����4�t�������T���UG�c��������_g��RO�,����~������F
0Q�����h`���&��}��$40Q�`�Ed�(���
4QE����?��?H��3#�a��Y����� �����Y���?��~��Z�'7�l�����z���������������~���M�s
O!$1D������]D�����D?����:!��P�<�a������$�UKG�E$�I�)$RH��jkZ����$�0:��U��U}��}��w����#�4�--kUj��C�M���9��m��h|A��A���EK37���e�����LW�x]������8�\peoXq�q'��*�P�����������Z�m���{w$�I$�m�c�4@m$�V�k���R��;c9��aRE���[���_mKM�P\����\����k3��3��F�Wm>�aRE���[QcC���f�5���������6��t�kqb���'�$#�������;���/�u�����h�uE>��O�����E��������D��3�4dQ��TS�Y"�����Qh�:������%9�ff.h���u]4��X�RE�]n���jZn�{�K���������6��t�kqe`��3N��D+E��Zn�{/9��S5����w�{u]�k����m4��N.�Qh��H��+z���4����.P�( ������ikM*���hJ8$���m
6G#!Gb���U��^���:��O�R"�4ZO�b��U�:���E�w��u$3�9�������-��CCX��Nn��x�<����g2�4�:���\w{8]I�O�D��'��^���D����o�x�b�m�t����;����&a��0ZU�`��'��"jl=�-m{�i>i�g2�g]6���w/t��l�m�f1e�!_1w�6���Vs*��u�k,8�wk�<�[2f�
#;!4����/yUdQ������4���U�:����Gb�Hg�x��$����:
p��V���������������oMV���Oc�^{�O�.%���#�J��%�����'5�����7���VU'���a�����rPirD�`(k[����Z�m�����9����Q�yWU�{W+�e|��r�+�|������$�hx�<�%x
lt9���(�P�w)��{�����~�}|d7����k�z��?h}�������P�CS������j��%?h}�r�2<��O����f3-���}����'�Q��>��=G��l�p�����~]>�{���}��I���=_���}�g����HQjj�A��v�}N�\}�����)D'��)�XQ���)�1Q�������50�T(�G�����333f1�Xa�F�Zi�m���+�~���1D<�K�q��y���H��[�uov��d�*}��W3�|q�{���nY�Y�<u��8��=��Qb�(,����`��mt��A�������F���h��h|���c�L1�2���G�K,}�/0=���b 9�p7rS�=�	�Up���@���O���]:��T<�� �����'z�����a�7����\�Y�<rg|v
���u��L���M���i_�+�S:t���
P��`|8�����m��(L�{R{����m��Q��z���G��|�f��?s���S�ON�|h����/�y���~k�7�����j�Z�q4�\@~(����V�!�kN(�$�`'_/�}F�4=]w�����p���W���}2���D�^�w�������3X�Y-�/��']�;���9����`
�����+��E���������������<5�G���	$8����I���-����D���� �O���
G|�-�	�eb�������9�"�~�@`�Q�|!�x�H�(;{��!$I���@�
ph:5�Z�]��N���p��Wg�M�p��v�G�>������0��3�P;������x��t�������?7��x�`�<&�
w6�2~|�Z�M�rq0Q��5�'����x��n��A#(xR!������=��]H�u�x�����|,�����>^�y���~;q'����|��o[��I$�I%����f^�$��C�)V	09t�t���Q�BLqY�!�r�����G�1k����^���)�B�id~A�>a����:�U�kUbJ�[�������PE��`��dlDHr�G���������u����������d�����^M<�vI�n4>Tn���:}7`��]�$I=G�n�z��a�G��s�t���
�W�3v8�Y
�s������H4@F�h�����f���i���� f����^�=/G�5��F�'�Z��������o!�x���(�A��E&��A�?�t<������v��A��wc�g��q��t������:9�z|��"$=��.�l��z�z�|�������,v����?"~�Yb���}CtIh:vy]���~Dx�}7�";�|G>�>Ci�����o'��QO��@|D�yV]��F��@�67��%�$]d���Rn�$�zp�T|K�mY�nq4�K������iV��eT)��),�JT5�D^F�xN��E�Q��3��O�	��pr��S����9���a��zm�E�;��!�=��������%��8D��TG��q�@u-~>�k���z�fT�����.������A�F�����>/�3���C���t�	��K(fa��B7���
��m�k�MZ�AB��m+����|t��`�"��v��<�����������x��y�a�pa���'���d�L�}�N���������N��:N'S�Ml�$�G�rnl�JS�K0��INf�3L;
��p�q4Y�������')��3�,��MjY�w�������t%�8�8,������e9;�q758�9�:�����t�N��SGr��q?L���l�af�'��'�&��N�MM�rv4jF�����2nG��2p�<gi�����Cg���l�6phjL�Sssr�2G����S&���rl�N'3�e��Af�898)JT���t�rpy���|�]�k\����=��h���4jD������g���L��'Y�x�w:�&����rt86S��,�8�785'��������z������v\�Y|�v�r55������X�ju|��[^v����w::8{,�0�N����2I�*y��Nf��ss�xN�&�M����,�F��i����2q,2jbY�96h�����Se�3��&&��i4l�������'�y���s;����t�,�S����������,��A����i8��;K
M�����
�p��(�L9(���L�<gI�0��JSdd�i�6rnprz�82������D��C�<jo����pw{=rk���O��tu���D�E�=.BMg���i�������r�.��n���1,}������ns�|���>����SJ�&[-���A�����l�-�N��e-��iR�si+�l+���[�9�l�V��l[��lU���8��**+����.+���[lV�b�mQ�:+�������.������e�����Es-��g%�����w���3Uqqqu���*�Cd���-�b�e�����qtT\\\]$�%*���p�?@����|���9���/�T�G��'������������a�R}Gq��?���~�g�o��|�������=/�F�N�P~���\?�.\�M>��7O9�{����������_�v�)���_����Y�i����}����������v�K��|��:u�����D��3�'��{�/=������O�s��������ScO=x����^r9����ON��Y<������q�&s0y^i��.R|c�L��~m��]�������V����m����4��o{w����{����$����-�x�~��?Z����=F�y����=���������K��{?�\G�������scE�^�t��8������m�\������/�4�����^�~9���y�O9��������r�{)W��w�+���y#�<��:z���T����]�v�g��s=�t�������T�o6^yG/Oe-����scE�^}v�'�zt}3�%��\�z����Q��}�f�G��r<z��\�N~r���z{{�{�B����:����C&M��0��T��A3����c��Csb��z� ��!�|��=���p<G�{GA>#���o�<d��G��`��E�^\�>�Q��?����9������6~��~�#��c���<"��8����O���?��p4��i}NIrGD�(Y�?���D������q���8�n&F���o���H���@(Q��{��
�f��F��I�R%T��A��<P���&�����rs?�0/�J�7���Rd�v��V�mN�q�p�~������D.������X�����������f�5��&���Y-�t�ru#��'�z��'�{��?��W_�$�3���W��k�?c�x}�����d}LC��#����&oP�	_:�Pv�~��~���=�I���/�����a��0�ZTt�Z�r��������=�d$��N��0��U(�-�\��>�=a���C~��#��C�
�~����<������1�=p�$���`z����=A��n���O�|?7�Is�~8��p�	Q%)D��}?M���y]^oB�,N�Y�1'If��]s�x���w�>��v����o|}sww����5��3/�k�������s{����N�����k��S\�m��[K����t_W�9����s��!Zuz��u��8����5����7�v������s[Yz��kk]dv�]^G0������to�o���}:�k���{:����DB��JL"H���6O��:M+����Q9%�}�u?k_�k������������/����TCz#����������>c��~�a���:mY���
V�T�k�t)��8I�!�75����F�_�5��:��~��	zp�S�{o����������m�i��r�|9���v�-����o�~�����~�|��O�������/��&i�7�y�?����Q���?d��'�V�H=]�d�=�oxc�;��~G����m�h�x'�a�5�a���R������z�o���>��w��?���"�H�I����Gr10���<�b��:�����<�#�9�Il[�9����hp<��m���"<plQ�c�q��L��L1�4��xH��	�#�4��D��>�����l���8�}��}�L�z3���cK6?P��/���:�������l��bE��kJ"����uY^f��d's�=������Mu!���� �>��^�W����`�Pi��8����F0��w�a�9��������E|��&�����s5�r���8ty�6���X�����08�H��sTd	
J�M[@1J�����U�l����@a�����\���jEt�N�%�N���V[.-��-Rz�I�K��*��^w^T�wbw^�u�mN�nn6���N�����{]�u�t����u��\w^E���Y]�ww��]���t�wbuyWyu��\��i9����u^=��Zl�����WX�L����j�a����2`0��:}��B�n��N�C�6�����Vs�$���>U�G�����miZ��5iXcy���=3����}bO)Jz334��wl�H`��c�H1��Nw�*�������� -$�������8
�@��|��&�K��v=�6��4��o}^��[[�~d
&��Iy���Er(���J��8+Y���,D|��JU,D$�H�����6. ��}|q�N��F������|LP@v��y\,�cn`{�-o��7�R)'�&�7��8
����{�����I$�CS�JZ^��}a�Ov$t��;��Vg���v����w��.=����"R��;��	*Nx`�Z&sK��8�g;������,�1�����=
�Y��c�C��o[o�e��fc�w�����u-V\��R����:F�c=��V��<�7�VBq����z�z����M��~��/���Y��������J��_n�j��`B�6�*"�r@D�r���*L�p5L�
���������Z����I[ .���cig	^�x? ",�~�x�8 ������TxP��9�N4��s�pq�\���iH�2p��@���@ecznu���y���
�.����\]s�����j|���i��zq�f4�)U$��fw���T*R�%P
�	RS%'$E�����%��)���I)���b#Gt������lI���$����|�Jzsic6�._�
�	0h<�v�-��r� u������3�U�V���9����������wwz�w��[|����[AmU6�����-�F�������vx���}����.
�-�<�qDZ�Dg��'=l��\�4$�8 �bs@��#L����J����J�_~�����q����K-,���T��*�|�.F���83b�f�f?GK/��%)�vs�\�4K�s�:�[IM��_??-��f� ��L�QST��*\�+^�t��
�
���7	��R7z��m��|�����9p�m3��:�#�'!��Vf.0m�e6�(4�o������R�%"��Vy�� �R��t��$C�������<8w"���
�V�v�9Z(Di~��D���Y����
�m�*����nqt�;M��?b�]ys���7����6�vb���:�:�4xA�C���"DD1���� �����+���kk�������;Y��2sZ�!�9{�Z����/d|/+|D�4`��$Q,�����?x+M��f������t��..d*`����v,_\����0X�,�p��I$�6��Mb'SU�|��g�_��AT��}7�S��)�Vu�A��K��r�SX""�a��t;�4>P���k���3��H7G�A���3|���~*m��(��.������~��ony�!����a�h��G�>a5�����l����Jhna�����j�������I���r���s���P�d�8��4e�����>JL���+��n����: �i����A�5�nd}k���/���:��"Rt!	5��iK��)R��.V���y��kQ�����6���,����e���Ft�E��u�}�����-on`�\�5:�>=�������U���6����/���tPi���?#EO�O��$~bm���f��B�m����x�����������.I�g�N��Z�I:xsLf�����$$Hq;;�g*�B�W�����rO�K3����}����y�}[�&m�Ze��O���V����~u�b����6/I������I�y�^hq7�����������9�����D�9�Wx������M�t8��w��g����vp�S\��@����[��i�!��oZ�����3_2wu�����!�m���{�/���]��M1cS�o>��o���e����g���v��l���~��	i����B����qd��n4����]�:��}���Fz�����9��m��66�}_���Y�u�5
��g�}~l��z�9��>����������������'y��tC���a������J�����x���{�����|����'�'W}zx_^���!m%���`�q����g���	���`gVa,3xX�0�,'�z=��ka f�0a}��}���;�hg-��'���a�,�����!�wh%�������o�N�D�N���8�3n�yx�������nMZ�����
���:��c��=����oy���Yc�����c���>5����Og��v�����S^P�����k�!�K3����{[�k�y�p�;��{L�	��L�,]/��LY�5c���5t��L�����)�t��y.��������x�s�
�<j��y��R���M���d1�7iLP�B;v�4�W"T�~���V���4�
���Z�����9�h����qf���r�[���3W-�o;����v�~�d0�\W���Yh4�3�����EO���qd���if-�/��������;w�?`=�4���9>�������vtl����oC8��?>��C=5�k�;�,��=x�3_�}��}��$��X,�w����D;��6y8h�o��G?�{s_sG���p�����m�|�_^���!m%���`�s�<c�6�]����������������'j=��6r�+|�\kd{�������O�}ky�NN�����N���8�10��vw�����KY0����H�������B����x�@~�t�
�=9��X�awb���{?��g����������
^��q��{�a��/���_[�[���m��e��O�y�/�����c�����3���h�������^2L�{�Y�V4�Z��[FL:��{S���������4���T�����2��)R��.V��n,H(C,j�&�cZZ�fk�
��;7gHdWn����/�%���������k����2�>1�E�?�*�A�d`Zz�Z��A����d
�W#�&�Y�L�n�B�oW���>�?`=��o�����Oc���A���co����/���yz�x�n�z�����K�}^3���~�,�������������'y��tC���a�g�������ks����Z��??���������o�������2K��.�L���&���=K-`�����qX]����c���8����`a����
��������'J=�
��
�0VC�{���	�E��5�y�9�H0w�$};�:��H��gd���4o��Z���.?(��7�{���>��A!�}o�t1�XI=uI]+wJ5�����O���:OW����w���M������+�����rK��=n^<��������������0�������R������PV=�c���S��3�7��|{`{�O�'��{�98�'F������xz����C�P�� k�:�2�C���0��<�I����n���������}�h����?n���{�gam30 v
g��5�`.������������%�o�03�h�|���{
l$�P&/�����5��@'L���`{��5�M4O������Nk�'�Y�$�Ly �4��w�k#2D\8}F��������Z�������r��z���iE��A����!�P�%�dL���L��xW��M+�0b�XjV�Z��������\���)�s�L�����v���=���
���f����4yI��J��$�9r0a�����r��W�v�W��W����p���M���q'��0llv(�r,�hP�,�4�F��������[1��a�V�1+o@�(���s��&���hp<���3��89v`��lp�(ly��'�CB�4�t��t���u^<EG�-X��F`�h���
\~C����
�����
�M�E(��CLS*11�Sb�(�5$���&
(�������I64O��/J���CMmOr��z��9`�s����:��>�������?�����k��*�I�?I�������~����'�+�e�fY�o�?�?�(^��U%O�-���W��������]B����y���(�0T��;S���^���I���%w�����N��E���/��W�U�;C��yI����u�'�������~���8��������"������B����C���&�W����Q��y������^}��g�������x��#�Z&�0N��?���rf��5�8�.�i_��|$���SeE�F��)���~�����vq������LD?��5�z��{���>��Q�'��J<Q'��$�(�PU��U�n'�O�8�>����|��TuB�����������'���|M�p#B~����b��W�=�E�a��m��+/_~B<�	^��zT�J��q.��~�IG�yaZ<�S���8N���9R:J���BU����Ua�}��a�J�~^P�S�RI��wR7v����8�>����f�3[m6��%���J#�����[��y�O��j����~J��/������#�Q}���?$v�OO��}qb�Z)D�5�d������J��8Q������\���|���F�B~�	����7d����#����T]�����~_�?��=/����r�������65sp����T���#�Oyzp��yQ���(��oX���:xt	���I7{��|�������E�l����!�g��8��Y%���z�]�����/��P�Q������a�"�E{����-��W���.����{�����K�W��������Q��H��������%���%�G�B�S����^�����,�p�.���S��}z=����Js����u���_�>?���v���������|���*�XI<����n���0�i�����
��oJ��6NS\���}C�(�������z������=���(��/	S�R}ax��y�U#�U;��������%�.�J?�W��^c��^�~u:/��]P�{��z��W��o�{
>�G�����������<�Td����T���3?/*~tW�K~�����\JI�?�c��>[�����������X<�T�I*�
Q���O�������/^T���.^�4�I�0~"������(�0�4l���%a�F0�6����H�r�J�*T�w:�$�;�)�a��Xa�e*T�R�@
�0�V�Z�j��V�Z�j��V�Z�j��V�Z�j��V�Z�j��,20��j���a�a�j�0�00�F����Z��$�:�*T�R�T�w:�
�*T�S��J�*�I!!$������HHI!!$���HK�Q$����I!.�$������N����*T�R��*T�S��
0�0�0��
�0V`���T�0��2�0�K�J�*T�R�RI#�I I$�$� S��*T�R�J��0�0�1*T�I$�$��H������*�J�*T����^�<��O2��i^���<�'�6�����)�"��d�=�}p�L��L-	=�����[��L�G��Z��������&,J��0�kfW�`��
'�|F�L�`�&$�>���OL����[-�v�^�f�X�rK�#�����#��p�ULMR?^������0��
(�E`�G�0`���\F�UUV�``��EQEQ�QEQEa�a�a�QEQE`������QEQEQF00QEQE`���\��������p2L�`���&I�0QE)$���I$�U��j�0``���I�bL00`���00`������`���$�1&I�b�\�+����\�+����\�+����\�+����\�+����\�+����\�+����\�+����\�+����88Q�`���$�1&
(��0``���0``��L00`���QE`�����I$�U�T�S�wd�0``��UUU�0``���
(��&I�0QE*������00Qr����00`��EQEQE����V�$%��I!V
(��(��UU%��I!-U�I	j��HKUl�BZ�d��Z�V��$��V�$%��J�$��V�R�L�BZ�d��[$����$��V�S$����K���V�00`��EQEQ�00QEQEQES$�F��*T�R�(��(��0``����(�0``���d��QEQEQF00QEQEQFa�a�a�QF0(�U��I$�U�I$j�QEQEQEa�a�a�QE`�0LQE00`��EQEQ�00`���2����00`��EV�Ul�I�T�R�I$�U�I$j��I#Ul�I�R�J�J�*T��I#Uj�00`���00QF00`���00U2I$j��I#Ul�UU�(��(��J�*d�H�Z�N���0`��EQE00`���2����
Wm������M��%]8t�7z����t���k����xOud������������{xE;���NxF��������{��`L'L�c����I���F��v}Qx~`��m��m���v���{�����0���$?
TPq0*��������d#���D�AH����~�R_�E
��zP�0�A�>R/=�
\����W�5)�����a�����l���eO�y����q�E>��/�G�����J��lC���H����y`��8�����'�~����s��t�<�(}� ��I���}/�W�~�_�<����C��5�?�9R��vT<��Q�`>��D>�����v
xC'���
�'�/\�����#��<�(,K#1";��������T�z?_WH��RBz�l~��K%����#���~�DQ��T�%}� X������W����4�l��[��
�OJ^���w��{\U��{WME�X�����������i�������=�����l��?���e`��~UG���:?Z�=/9r-�N�$>�v�8���'M���H�:�i�J���|V��m�V�b�����Z�d�[���v��px*�&�+�?gyxE:�2x�OJ4��~M]�n�R8��+q���T����30*b**�ao��E
D��/d���r������m����kl��������MW���J8����<�}����8�m��Rv�i���L��f��	R�J�������$�(�i#��b���W.f33$�I$�$�I$�I,5$	$�X$�I$�	a�RI%�Ia�$������I$I$�I-I$�Km��RI$�I$�IhI$�I$�I$�	$�j��$�I$�I$�I$�I$�I$�I$�I$���I$�I$�I$�I$�@$�I$�I$�I$�I I$�I$�j����������������������	$�I$�I$@�I$�I$�	�@�I �I$�I$�I$�I$��H$�	$�$�Z�jI �I I$�I �I$�I$�A$�	�I$�I$�DDDDDFFffI&�A$�I$�H�KV�Z�$����-Z�$�I$�$�H$�	�I$�I$�I$�$�I-I�IA$�	$H$�K�$�M�������m�I$�I$�I$�I$�I$�I$�Y$����yj��$�I$�@�I$��Z�j��$�I!�Z�fdy�������$��I$�E$�3333""""2*I$�I$�I$�I$�I$�<���V�DDDDDDDDDDDDDDDDKV����Z)$�I$fDDDfffffff�I$���$�x�K^	$�I$�I$�I$�KV��I$�I$�I$��I!KR�@�I$�I$�h��Z)�����������V��I<y$��%^	$�Hy��I%���I$�HI$��I$�I$�Z�$����$�@%��I$�I$��I �DDDDD@dfbZ�$�I$�I$�I$�I$@��I-�d�����I!��<y%��$�I$���V�Z�I$�H�I$�I$�I-�@I$���I$�I$�Z�I$�I$�I��ZDFfffdDM���@�V�^vDDFfdy�6334�x�Z�I$�I$���������jI%�I$�I$�I$�\�I%�$�KV�Z�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$���������DDDDDDDffffff�I$�I$�I$�II-Z�I$�I$�I$�I$�I$�$�f�������6��=�����w����8 H�U��W���!�Cl��
�4�T�R��h��
)MdR���1�����<��OD�Dk{���z�R��������@��s�����w�5w�����m��m�������9��i�$xp�[h��jV�N��l��f��r�������� ���8�.��.���Z��l��IWn���;��s�m��]�t=�-r���;���%�K��������1����mm����lj�����u;Uu�*����'��������m�����9�u8b���wv�[m��~��YYYYYYYYYYYYL�Y(0PaC
J�K�����������S)��2�d`��D�
�Z������O��C�7���&�����ux��-��o�3^31e�3^"	�����p�m8�8)��N&�g��������R���^c����32�0f,��y�3^
m�he����`���}���%�cm�33m�'t��kZ���km���Ew��'a>"z��%V�vC�t��u~�R��*T���]����Wa���������q9�N'���]�����kW�kZ���kZ���ffffffkZ��xp�����%�Ih�1�z��*�~����J��siZf	`�	kl�{���Z�JQ$��J��(R�J��N�)�>b�Q�cX�5��3i�f���	�'�����S4;�|B�>Ah�	���*d:�`����A6�8��xW6�V�
J��]���v��&[`-��t����}� H�)JR� H�3Y�'Hr���X^���GB}T�/�}���m����f����V�T�K��y�cm�P���
kY7�c����<��0�S<���`���C�W~U�u��;T��];������y��g�C�F ��:<��=�)�E,�SF�*�")RE��N&&��!	�R^��K�~��J]�Q
�3a�v�O� �S�N�� �+�����p"�T�t�EL�����N��l����Q�<�z�
j��nq��0�kZ��������:ay!��0����^b{G��"km���[(����$�x��G�z�>S����������+���m�a�����c��6��m��kk��'��	�R|�N*z��E��{�c63��b|�S��qj�Ehz*}�{�S�[����[ml���j��Q����[kj����aW�=L=��B�Eyf��d;�.
�W��#��T�����'eN�w�����S���.�:�?���{��J��QeOm�6�3l�$��s��p�')5�����6l������������@
�~5�����u�*��'d���|�r~"�m��*T�)@
�B��hlM
J�R�i+w@��4Sce�!�8A6�mKUuJ��kvd|{����_&y=���M��wm��������� �
 ���1!&N�U��=w���Sf�Ll�����5
i��\�������.;�wpv�m���2����������UDQ7S��a|���6m�����e��l�m�6j����.�r�����t�s��9�sj`f��3333m�{7m�]][����ke�fY�Z5�-,��e��Z��c*���G=<�3a;	���]����(����w_k��U]��	�'�/!=����k��fffm\a{�x�O�oeD�8H�#��81��I�uiD�R�V���j���p$v�.��%����`���%$�K�*B�!
��W����Oz��v��]��+��b���+��+�M�����[$�nh�d�����ljh�JiD��I�RWqK��-�qZ���j���i��E%��wM���U�7M���j
�u����]�x�/:�.���|m�f��f��6m�f���v�4>a}������U�ax�}������$��r���kfg��0\��/*�-�)�RI!��*�9�����U~Z�)[`i�i�i�m$�V��|	$�I$�H�m�Q%N�ED�Q&�J&��H"@��r���%^�T�Ie:T���P�Q��y~|?�G�m_�������ED��������?�������y?��{��>���G"="x~�Om��=�Qu�pf?M�Z�Q`�E��.������~	����{��e�H�-��~��C�J�?�0'�;�;���k��g[o:��N�0�f31d��H��-!�G�UE/�=��h�
���4
��(��y�:�&>��+�M�
��a�m[Eo��1�qg2mm
��kj��we]h����FS���:4EDQ��N�R�.�N�N�:��H��K�$q9I��!.E~�<!����[�����>�aW��}�~J�.<?n��k������
Y^IX��^UP}MR���.�qJ�4T�CHpG�����J�+���'��
�]�#���#���A��U�]���$>�*�&�}29�0��	���]������mV�i��=w�s�?���Z�ij��m6�U����b0O�U������:�i�l�D��N8r��5S"�����+�7��m��m����<H<:!�'��(����`�~G�?	J��y��{p{�
Z=��+C-O@��>]}u\��E��#�xY��(�B��>��>�[E�!��)�+.����U~y�����a��T��A�8�*2`�����`d��3uj����w��nwN�qY��}u�F���=�=��1�mm����x��"���Rys��=���J��O�,�66�lmZ��>��z�#��zUC��o=�0��N��3����e��m���X��ff[�����U�c������9�xC������b��
Mh�*���hY�X�R:nq����5�6:q���h���0.�2������;B�V�(�W�������K����h���������_�a�o�����S`�r�(��)��B�(��0a�?k���Z�D����H����������ap,�_g����������l��?�C^In�,���>$|O �����d}�����|=��?`v��X�f�Z��^��B�P��P�X��GM�B?���5�$�P��I�2����r;������6H�	�w����_S��p��?�����G"��KlzE��J������y����pj4�)e-�N	8$����_�W_����v"�'�����o��OC�����3��n����Mv��B� 0A���X'�`�'*}�����.}�7��B0�$x�`}�](q~|�����hM�������U��f����zc���^o��u�z���G��G����W�NS�[z��op����d�'*hb�	������}E�~QvR6~����������"m��=5\��o��-�`�}���H;=���T��;��By*��u������,&�
�eQ���U?�S��U:�<$��`����=4�PQu� ��Ob����"c�UfK��s2�����2���N��[	��}7]�wWG~]:��^���������$�����Urk+����6}��T��T|�HpP�(~#!�H���by �O���:�j�5$+����z;���a�}�Juk[j����J'��NJV������;s�S�s�;U���a�*J���d��N�s�I.J��U��,b�Y�e����/��N��c+�e{����/*��p���Du�6'�
��j��T��q��cX�C2s��3e�Yc7X��.}���mI(����V:�r���f�f���s��sS��*]:�ZM+U�^JW��%WJ��g�Me�%����b
��&4>��c��H(]�C�kjX���
�wN�F�h�2�6����E"�N[��dm��6��H����]�Y0��7b����Zr����%b��\���$�&��0om���Bz�nH�r���]	��#
���JR��DDB������<=�9�#�Op�|xJc�<�#rQ�__~�Z����}���U�U0��^�C�0|�p05`j�����{o�����2<�U�`a��<�o�!�!�Jj���������v��G�F�g��<�GK����z���z�}�4#�={>��0pL'�_�4>0lC`l#aj��})UQ����)M���,v������Jr��)���m���3l��bz�����M��=|���������<����o@q8�<���408I�c��lM��(������V��Sx�\
EQe������aJ�S��
V���w&�\�W&�.-���&oL+LF(Q�0v����������V��KZ���k-j�����jR�*�Z��ZC�����oz�����r��JN^��������B��v���������3a�=p�bp��'�����k��L��R"���+��}��\����Nxa@/[eY���@���p(h�I$�I^�.���F(��{.O9���g�W6v�Hh��+`�T$�
�(���U�X)V)1�IK��XS~V��$WM0P%��Q9Dd�T��,HA p�4����v]���+���>/{��z%��'Sg���c&N�I�Y��x�^/{����1v��c��.\98;N�s9����NM78��'y���nY��d��C�C���7:�eN�sc'C�8,�������N���������
�-��q+wv�v��q���v�R�v��;j��m$H 
Q	5�	RU�F	6�H�I�$��jH8��T,��
"���'�M��<��#���>����>��O��<t�7�&n��?N]�.�dE�:w}.�j�-HyO�k�J
���k8.�����X)<fu���e�|�0�-����]�d��S��Xw�r�)@��mv))kZ�����-�6��3�w�]���'Y��:�3w������5�R��zZ���a�f��"8��R��k���M5���q������T�����|�{��l��KR1V!4Z��W/��b���D
��+:�D@S5)S$���S1)���!��X1<q�������\��b��+�/
��9�/]6�s�plu_����Nd�0x:���M����Tu	�8vc��B��1�D:����/k�it�v��m��T�JR�*�u� *T�JS�)N�m��=P�'��9C�N��]��-r��s�������z����5�5�5nininininiU��ZEJ`�	L��qY.+#KsKsKsKs-�*�\����'y����C+�T<�m��m��T�JR�*��W���X�b�33333332�]:C��!�t'��������\���""\�n"wA������&Qz��.:��*v)�.�NW�19�������k[m����{��t��O3�X\�)�N�R`�H���p����-	;��?�X����I��������G�j��6�����~S�T��}��(���U��
i!>be����;��]mS������y�������v#y��h���������d�����3�����GZk6�\q0���>7�7��%�(C�J'��lv9��>��x��Ox�|4��n5����D���~���m�[e!��������N��/E�8��������u!D����_�����LEi���W�J|4��1?��}�z�"������w�6�a0\;��/sTWHa�%�2��8Ut����,���'�����z���+�\X��Yb��e���+,VX��Yb��e���+,VX��]}�z�������Z'p���+�M��+�N	�yR�1�����}iHx$G�:������9��qR���|�}�G��������e���m�V�,�5P��y��I8Ds��~���;���>���H_��o�z�����*���_h����Wn^�IF;���6������J0{�������Y>��0i��q�v�LVX��D�M�L��,�����U>�w�^������+*�!%����A0r(�PL�aPL�6�T�J$���������t���rr��&8,��/1c�y���.�U�N����?0$		$���9�p�$$�_-��wo�PZ��]�Z�5��V��[fwy����n�g ����/Zx��;��C�
J(P�>)���s�/���	��c�������O�.RI/q�����a��1�i���t�i$$������I$�9u'�P� �&b�P�Lk�bZ�������-$����z��������m�]���b��Rf�aSW���[��1��&,j��������HI,Ii��w$����|�u	Jk�C�$�)�2Wk��Z���-v>�v���r|�p�
��j���\�nfc.	�^��B�8(��(��G
��#��*"�M
4��z;���kj���9hx`�wrco2
��)V:�M�q��78qxS$��S)N��"�e8,�h��7&IGB��q0�'9�'B��8R�"�^�&��*�/��{��C��H���K6�(�eN3�W|�lhH��C{�����k�[[��M64P b���o4�X-Z��i�m��3Y[��(������(A�����[����J�
+cM�i�GqzT�/�?}C�=��(_nS�X>����,2�	)��PuAs�T�9I'.��B����Uv"��!���;��O/�$�~C��j���<��z��{���W�#�U��U�S��&���������Q�����:NS����'���`��eN�y�C�Jv�y����0���J�	}�=���~gkj����:2���������U�~������������[X��u���`�����A�eQ��K��R�=���o`�_W�O�{�^�.�N�����U*�J�R�Uj�'w���N�@�O1�="�FT�R������c�5����gtw�����U��V0���2�}O	w��Y��0�S�>J����~���t�\�	�=��Wv"���L���Q���n����P����y�=���Q�Z�m
����v���"�;������{�]�v�u���.9	Z�j�Rbqw��79M��s��4nr�sM��+�uibR?�������VK�YC�j�f�����S��E;v���C�����t)�����ibEbk���G4����mM��j�Q��zR�n�\���)�+���00��-W�^<�FK�U*<�6l��l��l��l�]����,e1���
����[�kh����Q_�Tqt�!���*��7GB0z��`a��=FT�
��r#�����B�uG��'�RO�����X�0�k0>F����"?8���~��)Ev���]N��ke����������wNU�!��eV��:H��BK�i�c6�6�X��:�t'�]	�.����U�R��h���`�F�������O������eO4������vT�m'\<4v?�SQ���=��n	�t��8��!��v����-R�t'id:�R��Onx������:���py����TFw�D��AG?�>����T�����jCb<������#�����u���888���(L�<
�ai39��T�5O>�I�*TpG�ud�����>�?�����_P�D�#[ZU*�����5����	��x���$c�z���Q��*0��������A�����;�R���S�Z����6�f�+M��)��p��dG��S��&�2O2�����{:!>��zB�E
(�9;�H�:T}���6�S����$��S��Y;B����u���?���U��3l	@����{�6���Y����������f����o��~�:+�L%��)��D�a~�0����o?�&<E�#�Q�C"zs�J�+��C����f���5�d�Lf>���s����L���SI=(z�I	��L	���Z�/&�!� ��
)�E��FA��{�x�����(�����PH�R�I&��i��k5ucB�4+�C��^��U���U��JU-�UUm�����A��Z�j;��I$�J�P�����S��s������U*;���5�a����C��)�WC�Y������w����Y����Q��_/��`��5$�Rf����2��79s��q"�C�:��C�@��:��C�p$�.w;�:�s�e
��,��j�2��DIT�NT�%%U+���(��J���f��ecYjEt]EAqp�Q1��,1'�[��I����dx���+��'��6��g�&_"M�"��;m<�^QG����
�6�������yO5'�+�W���o��������j�v���r�j]��p���}�u�_E�Y�YgVu�Y��e�]����h��04���`�����T�}B��I�J�����[���>��`}E��tuV4s9���6���.���hm�h���9����]�W��G��?g������5C	����U�UUv��C���2�`�q�W�VSY&�?��56���mV�5j^�c�O/�>�~K���,0�`a��X`����{�����s��9�w;��n�[���n��������gnKqt:�Sd��G<��V�]�t)h����y�h^I4�������0lB�������f�����U�>c�����d6���4�4�5Q4�K�%��l�Yk����3m�������R4:oX�n"�b1�dEtqUU�]W���m'�Pt���P�S�ayT���a;J��8K	���JrB�2�����w�����9N�(���fl2��8�	�O��Q#�d������d���=��R���m��V�<� ��F�@�PQAE�s�@���#�}�D```~�t�q$����i���������[���pu0���N7��kF[&�����9�rY'Y��8��I�ssf�N����:I�5�����bJ�T��z��J�kZ��������I�iib����HR�Z�,E-�ib�����t���f������-�$�-E,�kz!��^~�v��J���'�FC�tb��/e�Wb�H�LC��?v�{��m���eUTzKDb'D����8y��r[pbFP=��JuqaK;��?�`O2y����I4_�@��i����B4&k�������#�u;	,>���K��|��/�U���9�:���L&S���
�����!2lLP�l�C� ����lP�?�1�X�=��G%��R�Ua���_����+������w����m�j������>���d�L��5ais���\�mF�
;�F&�n�ID�5�0���f	�&`2&`2L�dL�dL��\��.p\�0��K�A�s�r\�9.p\�9�������H��d�f��6��C���>c�-:��s�D��!�|��&�j|��G��F�������������T�y�?��I�}������	��z��k`�,���h>G���_�GY�����],j��3���)E�\pi�p�����.�C�UL&pL#�`,tN?��
(y�����u��A-��>���������8�&�{�0��~��0���(QF�d����(`Q,���f&`d���Q�`�BYKN�#������0������61�cVN���s����(
�9
�#�u;����������y'��/�B������y:A�}qK0��N�-��G@��|*����8b�

(`��a�����-�-�-�<��J����"*()V���^F�2c�N�*>����n9��C1��6��j�6��a�
����A��B}���)?C�=�V�_jNr#�0.�?0������E����Nh]��w�KI���GG�h�u��Uj.���R������Zd��y%�y���u��8ppj�����N
0�ZS��wX�,�X��7/���2�F��\���/f�"���_(�kw���w9t��]����<Z���5��[�w������o^m����8��V���7\`hsS�4�����I�:��+{[�K]|Vs�7�����KU�[�7G^u�k|Ik����I�6�V���������'l\gf�?^�*M'v��6l��1�0��f3$�;!��S��q!�i&Ji&����]DDDE��JT�R�cdi���T���H�p$����q�� �C�}g�I�s!f"����k�.gYEm��[n�.�*N���]�=����{g��T�����0a2Y�R�U��v��N��
N�x��j�f�e��KL�35f�Vk5���*�US-J����~�����`��'t�GU��s����	����3�w�����Gn��a?��~��8�T���mW�����'4zJRc$�a�S�-�������oy�9��uyg��]|����l��l<�N��:�8'�B�MS�ph�O�/�T}���b��w�|y����[[m����a��������cR�*l[Sh�6M��*���*�rKQv��Hd�Q�O}3l������7f����9��n����v����Q�yx�w���ZVwm�m��8�8����-S��+D��R���k
�33[�I�w@�[���K�|��Uk��$�R�K����sf���~��+�>���H="�y�,C���8����[mm���~z,���s�Fq�4
������'��Y�AYh�sL�Y�k"R��j��Uu�]�+���w	�Vz�
����v��\�{Dj������jVU���c����#����98K���Mp&���������B�a{O���5������6��hM���l���*6��g+kt|�xh���k)^�wUU��S��M�N%�	��Z��>�����s���&�����}����rS�P���W�d\�6�6�J_����Q���J���+h&������J_��J�}�5AeZR]z��������W���)!*us��'q���?7����lqy�R}�q�U�Py���
���;��S�'�>��}*�+���_�~���S���ar]~6�����;�����{���X_J�}�;�-Z;.q�,����1�5�$��S�U>n�_����~]cm��j�,��?�����A)�I|y���8�k5�����-4p�w[��aX�9�ak.9r�8���4]��1��A��
����u�����u~�O�������*��I�.T�>�4�q-S�
S��2/���MQ��~!�Q�^EzR�i���MP��2O�S����X2��������a��`����A�/����=�_>�q�5�}����m�k�������������I$�L�L������_=����m��s���x�r8.������J�T���t'��c)W�]�/��z��]�qLz%_�~��������������80p&)(�M����V�O�W����0)�7�h��%C�'�r$��Fwz���{C�#���Y#�����&=�������<IrJQ����'�w������]L����hY�djJ,V��SB�p�}q+�0}G���v�l_j�qSx�C�`xAe+�9����W���	wK���[T�?A<��p��lc9R��V���D���8\�0u�d��2/mH�<�������z�>�;	�;�
Xp3k��*T�t��c����0�|��OeU�;y�4'�G��h�)�%���UZ��j��}����O�)��O�+Rd���`��0�G��=u���NS��ND���U�5�DD�Z����Rw)��])u��M����.��k����[�����y�m���P��1��������I�1*��O/��'Nr�:%<����G��������<���/m�:n2a�#��t&R/�)�t9$�����"J"J$���.r�.r��"J"J$��HZ��'qX/�������!���i8��W����3����0|������pW����^���k���O3�'���%;��R��$S�XU���'q�nve�2�Sv�7k�����W�#���]T����+��&��]��`��B���r���9��
X5a�9Xq�+a���r���(���������_!U�G��h_T>b^�E>� ��$f%5_I�'3���0Z:����0r,=�r���Q������m5+����>��~5I��v��L;��;G���h�b���	��@���6�$��V)}��r��k��1lllll3�����_�*ziM�����O�X�?���Y�m����<���9�X#aK�O'�U�MCBd�G4����c�/	-�z����;Q��3%N���b���c!�>�S�T�����UO������y�������`�U}�oz�O�c"���WH~�����0^���I8.�s�	��9"r.�?P_u	�_�����GFI=b���M�Mi�-�M)����V����w���;nm��-�Z����n�%�j�������Mt^�>C��hT�Z�Q�TLw�������B=X��-�Z�
&��3��j��V������h�O�����'����0�R�vE�L�(�dX��dCm[R��!��j�U��j�q�iX^
�K����{������h���M,-����x����[E%hY�yWB���M,�-G����cB�r�B�����yKZ����M,��"��+Z��t,L`��f5��!Z���Ec*8V����hp�#b�R!&R��<"��/������g`�3���p����%F�--$U�,b�z��vs��d��O!$I���.u���sc�N�zi<&�j�jg
x����kKY5d��������Ny6��yo�_��y<��
�[�jS��q2irR�<�N
�	��B�L&L�nie�G��]^gzp�r�c�N����Ja�l�%���94w����9e��-j�G
a���GU������vZ��\�:0����Z)��
������S����f��7��������i���R��V��4)��N:�L��b��U���I[�GZx�n�JP.���^��	���a$���^��v�|q`�S�+��E�Z����>%���������A5��2��`GV�Ik�����q�)F��)m	�n���
���Zk.Z���n%q���w��|�)X^��%��J	PV�%lZ5�O��O�j�����2���m����/.3�r��_.ZbyLV0PtH���W[��O��I�������q87X�f]����n%q���w����)c��mU�$�KHMNc�`�\� ���(��N�X�p8E8�b�U���6�H�h`��N�:�;��x����%>��PNT{�D��ml�L���kll3:*Q��z	�.���L���IO*�D:A{�UA�Q��L�	����$�Q&{���������wwwwwwwwwwwwUuWUuV�]]]]]]]]]z,������������������R�WU����O�O@��������Y��w�
�P�����[m�k=h��C!���PJ��A�'�G�}"���#���v8�(�E�0G��S�O1�������,��;��z��<��<�t�����g���pt

9���4�a��a:��y��K�0y����zC����Q�)L�������|k���I�y��'���<;r���m&�BHc&,�v�v��q���Y�gm���E^t_@�@���p�����������������Bm�� �Dw���C�K�thh��Q���h��a������B����N�8��N�:������:A�1�����m��aT��I}rRJ4J���f��m�Q���$�&`d�,���fI�%&`���fA�fI�%�=��%�����c&;�F[-��l�#��8��VJ������N����w�gq�����i�j�z�0�v�6T0t4[UG�8-�����(�z�/ZWUQ��C��������R��������c����*>�x^��ZTu	h�:�
vBp~a�Qm����o���U}�<j�G��,5��%X��`�(�f#�Ni��(�
�}&���<����5UI$�I9wv@�U���������a)���(�����^�^�=�[������v���\� ��tF�NZJm:"j�ks.]K��Ln�[R�mX�c�L4,���j�����{^w�Ye��;,��kZ��5%���]x��N��b:3Vqi�0U�T�<�iUO���w�
R�f$w��:���IG�U*;c����z�5%aYf�A*��"TLX����90h�Yf�N�S��R��84QL�8���6nL�nQ�j0�d�8�L�l�nMCF�Jp��ppY�fCCR�)JiD�Z�Z��I�T-���c��N6E!w�e�V�Gr+Ww"-[[�m�����Xt�:�fV�tCE�'/����g1"t�u���t*n�:�F���f��!�&;�e�&a�M,h�!�Ui9b��,1h��� :c���2�t�5BzV
"��"�sI��������c4����j��wY�+��� �1U��M��e�3C���P�.�W;U��z�D��<�����������8K�Q����������`�8�8�z�	�8�8��*�W_:�A HW9R�:@�$	
�'qp.�O1<�pK��a<	p\K��T���m���|UG`��qW�S	�`�C�,�1y	�N���z����at���)$��]��C���'�^U;��]�<T|�7�bK�r_���������`^�y������^�x�K�I��G�/0�'��f$�I��IV���>��5W�f�m��8���7npL��X�S��G�#�M��c����K�$o�,�A�!��,U3�N�X_!W�8�|��IF��q���pgn	�*�q����.��]�������DF"�KQ�z���n�����m��;j�����+��>��x4h��2a�L,��D�fb��������8�=��z>�U�v��7��v��<���)��R}<���:U�}�|TxC�]�w
��x�����j��U�VU��p'�e,00P�B8v����5�8����h01&[s2��ffm�
���:��*����y4�_����w+��\�����[9����2���"4���4nhCf1�ht�n�����e[��� ��@���t"@��
Q��8�PQ�
Q�	:��t���@@88��N�
@p��wt:$����wr���0�G��"�������R� ��Uw���w^Uz�8kkkj�I��1�`�C<��'yi�V������EGGt\�J������1�/>��
<p/�d4�_Mm��k�N���Tz8�'������8C�qS�:�������?US�z�,�.��9�X`�����;�-XaXaa���a�u+���/�;�����d`�:�#�)���A�����}���~���<�3��������27-(�3������YX��"�o9�Ou�s���k��-k�����F��:��afIa��M�
2���[\�u��7D��� RS����(7�kJ-�;f�����z��gN8����JoT�B;�L��C�����>����T])�)_��D����_P{��z�c��'�X's�_�M�;�=�j�Uu�R�QR��NB_Ab�;h�/����������G�K��9sm[M�� _ ���-R��v��m�z���������r?]`�Z�|	�`��0�����8BtA��'�d�n��!��;!2��}�f���H�y�N��D?���lST���5��S�?�1���E��+a�����J�������>�� �G��1"�,j[Cjm+d��M��*��]���K���x�u�U8����*�_��C�@�?������!8{m��m�E>��kI$��WjR��������-_���0v0v����

(`��j���cfm���O�x��8�z����G�����O��^�s��;��R�)���uU�N1��9��C��`����2?Ws�����	���;UUQ��#��GN�h�:���4������=�K��U��ES����W������������un��d���fI�&D�1##�WT���E���.V
X5h��#����7�O[���RzH<���4���m��m��1^�,h�mmmmmmmF�]E��9Tt���)�P)�BI ���K��U"U�^w]�j]*T��uJ�_RWBj�P�+�`\��S�\R�/�00��:US��Q���+��+;���+;������b�R��O��3WwwwwwwrI#�$�����40`��������]7m���8��fL��]M��.���L5)�)�������h�4a�h�f�#&�Xd����N'$U����31 @�����+������'-�7����7@���,S*=HM��
��Q�\N�+c���@E6��v���G�	��x�.���6�,���������,���&��p��9�y�S��N��.*��'���p��v�^��/!y��	����O����z��^s��C���N��� /`���.	��>�_�hx��,�@��#��aa$������]�����������E�_���N"!G�_��PVI��x7S�H�?�� ������������@8�����$�h(r�(������cE�\s��H@u	"�[��������m������ �M

��4I6��� �$@h���Z��z���\�����6�F�Ma����];��y�s���u����%�
��^�=P=�>M���2����>���h�8��l�a}�_^�8G��B�
Vl��>�z-�����%F��:B������M����KT�T��73@P�\�sa@$^h %N� �\�V��@}�T�}�:u��j[\��J
v5��085?H!�P�D��=OSM=M�A��dLL�5M�U*�F���&	���� ���&�%Oz�TBA���2``�Li�	�0$�JH�M�����@����I�������mOMOI�b
�i������<�TI	��L@�0��h�M&��d�����������������yI'��_�59��c�`lR���E�LhC���M���6�O�L�e$h�/`@��UuNcTX�$P��.E�=��F�%�����s�3�E��i~���X�I���M"nX��0���������L��M,�U�kZ��?�;�<���4���?����=��?�h�������'������.<M�S�)��[����s���N����h����%�Y/��N�������.f[����`}g�|�!�>'�*���W������h����^x�Wq��A�p�s��$@��p����=8�r���$	@�D	@�$	B����s��@ Wp  ����puwU�]x�!yw�p9��� @�p9� H����pu�26����m����m�����$	@� ��������dm�6�l��F�#m����dm�6�l��N������:pt� ������F�6����m'N@�$.������:�.��@������B��$	@�$	@�$	@�0� H]��]��p9�@!u�]w���p9��p9���p9���w]��� `��	��:�@� �����.����.���� 	@�$	����$�8�s��@���s���`@u�������^�������y�����^x����Wp����yR�����58;m^���]��oRD���qd�7�Z�������:�T�*��<����*�m��u[���%^xU�����pV��5{U�����{{�Uw�Wp=����n�s��j�u�y��<�w������zp9���p9���.�uY�{���_K^x�_:��*�pU��������^x]��pu�w�k������x�s��8�:���kUY�X�?����;`	@E�j�}�����;V���p;S����V���� mUX����:�������u���uS�����m����:������WpV�p9���i����<�������=}v��<���yZp�����>��m�i��^U���������=T���?]���w]���F�#m����dm�6�l��F�#m���������m�;]���y��p����:p���<������p��8t�@�����W��<�W\�����u� H@�$	@�$���������N~e]�y8:��S���|j�������8�T�>�����/k�.����.�U����z��{k����;�����p��J���~��~����W�W���������/��>�|�#AW�o������
�s��g�e���s����:�lw?�;���<��^V��fk�m�m���.U������jx�?�}���6�=HD������Ixx�,���f�hQ�<3�ey���������O$y*,F���&e>��k��D�F`��f]��w������O�����g�n���"��KB-i-D�"�F�D2��A�B�D��N�4%
����%����������0H��B�)
�J�Ba(<�s��'������s���g�����@w��U��R�����M,�P���(����z��������${�����?�P�(�F
0Phh40d�0Q��F���Hh`�QF`�F	����F�B�(�s�������H�??A���O������}�\�o�����]���6��<����i�z�������L�5������$�a��PD*����������~���A�����c�0~���P�<�`�
�`�0M����i�kX0`���m�o���[g#C�l#6�n�m����e�m�f�b1�r�bG�@�Q�p�Uz����j[^UyU������7�c3�����vo���q����:�����be8U
�RJ0X��-i��i��h1��d;�>��kZ���\�p�I�AW}��z�����SKz�[Mg6�t� ���Js��F0�wuUA�����%�'�aR��;QC�c���Jnq��
��"���8����0����Y�X��;QC�c�����`&�%N��WuTLY\L��c���
���	���7�BQ<5��`&�0����&,�%L`��6��0�b"'j"x�q	D����`&�%N��WuTLY\L��c���
���	���7�BQ<5��`&�0����&,�%L`��6��0�b"'j"x�q	D����`&�%N��\U�Pq1|^^1�Ow
���	�D'y� %�Q)�IL,��(�5Wnc��
�u��"K�r#�4i&�Q���Q��&
[m��'mf�;x�����L\Oj����=����p�k���^��Q����M��-,=:�u�'����X�iu��h�����j�o-cHRc	�q�k��=5�[K+����#bJ�Q�/s�H�"6�]��}3T�G��������l�a�q�c	��4���}�z�8Dq�B�/�����8��^������m
La=�3�a<��ZJ�
*0�$�E�p�:4��#n��_7�5K$q���;nV�oOd�c���'���L4�p�4p��G.��_7�5K$q���;mJ�i�5��I�'��\��K\��O4,9;p�92��G.��_7�5K$q������yxZ$Xz���'��������t���j�@�+�l�N��l������\�nr�.�-�n�M������9IGq�hhr0n(w���n7Ew�v�������P�i0��l8�����%C���8:���g���
�.��Huxx~?�$�}���?|�*��l��C��x���O��rK-YV-�~�~����:}�c�x=���E:O�����w������z�z��w������C��~�?o�?����$D?����Q!J$�),�`��ME���-�D�@����@O��!jfI%�K%�YmU������|�%X�"m����<����?Dzy�@|N��D>�G�����S4�c���>)JR���(��}����z�����J��?W�����y?�����N�GN=:����v�w�^�
�����=���'���pS�S�L-��i�����o����p��3���zx��L��:Y:���^?�l8�YN�t���<~xl�����p;9 ��5���gG��{�n�~������u;���=i�>z����4
9�	?_��O��t>_O����8���no����W�Z�������ng�o��h|�gk7$�m�A?,IGA������~��^?.G���{�G�'����A��}z3p���`P(pm�v����$ �����p�����O>C��:��@��>N���]s��E�~;�����������^����v����j���������I$����4���A�	���M������xh����?������\����1�c�1�g���z����G�����h��m>�k"���p�yVm�7�M"�?�z��"����g���k���8�F����/�����������>�|[��?�~q��f2L��E��5A}��X�����g�r��,HA
y;n�<p�^��L_��84���m�N�\��(I��A���h�D4�F���4�I#D�Fj�55H����(������a�>g�������Q�|
�u"��=���?���o��}���vQ�����D�!��r���zpr��/��_~v�r����6�����~��ae��I>�GB/7��������4/��:�/�������PO���|k��N3��y6�y��l�ve��{��73�����X
F�|�nZ�����V�����j���$�`��m��s�o�i��4�si1����OJ]���<���1�$��D�"�����
����=}vr�i���a��`}�
s����A������������z�H����a�ln{�FS5�b�M�z�:�'C����u)�����ha���lln)N�)���Wi���S�bYf���)�����GS�sr����s(���M�v)������9K6��7,��d����N��&�i������m2w�N����9�h��S�f��4}�1��hpx����bd0��s���b�M&�c�0�
��0�a�u�
�`��c��)�������������M<
��50�x�8�s�r��9Jla��r���`rr6��2R�Ss��E)�L�m<�O$����Jh�%:������d�v<;scs����&��760����67����F�6�b����0�)����"�
�a))N7<�M��7�F�b�
R�}�I��w40�sq�������x%gCM�������a���csL�4v7�S�����h�Ma���:��&MJ+E��0a��SR�&��
���jm7�7�;M�N���s7��3E;+�w,w6,����SG����sCsiGR�F����3&�v��dh��XpY<M�ra��q�)JlF�xN
�������$��$�����gQ��eHDuPD;���z��\u��X����h-�,X�b��,X�b�b��*�[QE6��-QF�����*��B��A�(��hQ�����������������G���C����z��a�?y�~sF��s����r)?�v�I6�c������;�����_��_�5�=|s�3��N/�f/�_"���x���_�z��?��/�y����:��KW+���?�8�������|~x���k�9��tI����������~#�4:�7��?������~V�&���C�zx����^}�K���~�o�:{��}����G�)�+���+��s��U��[���������~W}�R��]�S�~�=���������������=�v�����:}u:��}���������G��t������������|��~OO�Q�����{~w��W����������?9Mz/�����W���[[���������~W}�R��]�S�~�=���������������=��������t:$�=Y������������������?�����~V�)���~OO�Q�������]��o�=�{>�O�����k���z�M�����u]�������OG������������������������O�n��:�k����]N�?_f~p�z~y�7�����_���x�z��x�������y����||cjS4��_���[�g���=Ga����Q���x��y��OQ���=�u������)�HS�QO���u���G��L?I�������������aP��<�"a
R~�"LuT}%�����~�v{}�c������������������I���A�#��0���WH��h����=������I���q�	*�s_����P��1�q&�ro��\����^�`~h��r)�����������N���G���C`���c��������$ ��G���8�������?��V�������~#~+Han�k�]F�OY�����j�:Z����{�sw�cIT9�����7Sz�cS33��]�IKz�I.XM��zZR�$V����w��{���������������s�9���8P�6�I$�a��)�	I�,�@>#�G�����p`� E$�$�Q�D�<������>�!����P,������������#����m�}��>gY?$��m��3u����x��M���%�OQ���i�2�
������T���4�p������~�������s�9��M\/�������g�/��	p����JN������]{}@�>W#����~�g��r:��(��U,4;pF��Qd��(����I�S��������G`���~���#��!��AO�����H�R���Q�	?�X��cb9�G�;������I;�$[-I��<�a���m��o��nl(��)�J�����J�)*������E=��#r45=��������>[?�>������
��v��~�����[��<u�f�n���	�^y[��y�o��Q�E?�=��|~���t�Or�	�!�QL�'��5l�[-��V������!�g�F�����5��s���������>6�v�6u�#�m�g��~6��h'��i"<��i�����9G�O�#��B��=R9)��Jj�������h\D@��y*r�����KX�����������i0<!^J��a��&��+B� y"��946�Z@�LW��+�9������J<����W1������d(�%(��J0R&"J,�P�(�������M�����u1�NM�Mx�iJQ���������e��7<.Z��]�m9�]^O�3���}7��*{|���1�>Dc�@BXXI��8���]����6�x��q��)~�Zs�����I�����i�2�����K�j!d�Y�����d���6�C���]���_W����D��V��>8���R�p����������=�q<>G���
����;u���������YS7����$���V�Od$%������7�������R�~�_�Iy[]���>{��������g�{�~�3O��>$���Z
�/�r��vk�<�um9���0>�t|������RO�w�����M���q�%�w�e�'8�=5+4���r����Ou���9���=�+����o���t�������N6�Y�Gn������A�m�$C��,�X������U�p��Ig��s�ZK��Kg� �|y�������c�$�K��\r�-W�F���9V��R��jW|cm]K�j6��
G���]�S���m�N����O�/=�-e���������x;9��3�����$=�~<y�s�G/G�����:��:^���$�<���P�&'�y����z TQB�pz����R�F�F�F�F�������#ps���3�z�X�w9��������Z�(�`��E�.��oO���������a|<|�M4��KM-4���{g�(����svk���$���>���&x��IwUv����B�	�OP�$��kw����	���X�{0���i�>:��������������Z��J�Z^�����WN^^.�?!�G�zu���~������o�4�����5���y�"���bHujS�=����������:���^���z��aJ��}������������~������#`�����<���m�,y�7���K����>�����,a)B����t��g]\r$��|vr��w�n������7�
�0j�m�[T{��4������E�]���}�8I4�t�N���n�Bp���Z���v�A�v����{��p��l��9�#��U�G��k����+�����b!���n�\���O?����O��bD�����#�����>S�����_��7>q��S�I�;'h�8�v�!�������s�W�KxT�$��������7n#�?t���i��6d��������.�8��3����zu�t�S�������7�����M�#�u�����/�7��W-#���Kh��U���PV�)	��
�?�"��
�HGp��
��
�PC	�.-uu
\0Pm��)�(d��W�a�2�6��� `��D;s��!�����{-�<�q*����G�0�v6~~��
� ���
Et�����:��H�Bf�����G�V����['
��Y�1��k�k[ R4����
������%������[���q3=�c�������1�F��Ml6KJ�3.�z��:5���������9G�h�3
6�h0�MGzw�2�|��-����W���$�������#���_y�,J>��@baTC�m*��P%���N�~���;��6P7~�n#�;��i�2dm���v�H~��s7�,gs�`�:�	�!<;f���ARQ���Q�����������ON�[�K_<j��KEDH��s������rI*�{���+N��D�f��PU��	�d�/!@�"��_op�(w
Y�`�����2a�+������4�l3��� `���v�L,
DC����������� q�4{��������E�+��T����K�h��t�@=@�k�g5�V�R;���v����=.�>��y>���@�4<6�5��c������'Q'i����G��*H��D��8�������N7�7V\&���5��66��s�9�5�����nf�l�**��1���X^���P��x����iD���#
����.\�����t��l���f_�{���gmZ�@�kf0z.r�b3
6�h0�Mw���i~�jJ��JsP���JIA�d0%;�*G�n��X��84:|�m�T��-���.�s?y��;�@7^��q�����M����#oG����C�������c;����OY�v;�������A��%^b#�y]*�h�d�{:,�4����\}�q�w�Y��^�h��/����������GK�@2
+O�5�X��$����PV�)	��
�?���A`�^d�/!@�"��_��P�
d��Rr�h)�(d��W�GK&r��wy���y�@�-���Z�����b`3�����3�.%TQ�D�����n^ur�+��T����K�h��t�@=Cl5�3���[��L��d|�~��]�����
SC�l�\8P`B��u}�\8�N�J�14�]���l�,��qY~'L#�5
�[1��JUT5����<���;�'	��74�����k�)���1���q����8nh�\T=_|w��_b����z�F��&���Q8`)�����&1u�����0S���h��c�9�u��mr�f�����Vx���������Ko5�]�_C�<x�~�jJ���r����J`�CS�}�x0��1e����hL*�|�m�T��6��n��3�������<�@�����H�k�q��pl�����y�N�!��w���`��������&<F�\VY!���(�nu����Ds� ���^�l�����c'CE��S������;���>=k���e�u�����{qy
��QC�AEi���:�pw$�@>2y�
��!2!Y�G�@h,B=C���<��"�P�x���]"#ja���
@�X-5E�J���d�Z#����5��F����[�����
��g$���g\\J����G�?�����"���!�4&F:t �@�
w��j��Gr2.�=��7]�NA<�|D�@�4<6�5��F;/�
5��!D�$��N��_���R����S'a���U"�����R������)���F7�u5c�7|>�]ILk�b�5�W�"�i�<E �5�Lf��;��_b����z�BxBM{���p�S���L]b��7�+ok7�/m�ka�ZV�kj�M&v�v�;[��"hLB�%�1*�s��x~�jJ��I�>����4�`Jt/�T��}�0��Os���KT��6���.���^|��k��G'B��u2v4Y`i�x�=jh�����
q�|{�<�p��;����i���a��`9]��k��!D��+����zK��L�,��qY~��8��EB��D��R�U
@�vu�y}3xwJ��$#S��3��������0y<����+�X#�i=�6LRn�j�.)���MfZ�V:	��u��<���l=(��9����LI�C������Q����`�P�l0|�r7�"��v����I�m&�u�$�h86Y&�T��G��7��|��Cm���$���6����2t
��QE
�����d���
(��'O
s������Q�l�
Q��Q�0`�$�J0LQ�&�I">�i6��&�6��dY,�%�CpjI�����T�%2H����C�5!T�	�
��N�#���y���OV�|�>[�9>
���
4���b�hr��9�����rR������y��_���m^�[j��:��|������������nA�CLC��? �@D`�`����@?W��p�t�?���>�(�P�E�
u�|�����46A��I�Q�pM��bOC!&�x��	C�S�����~���?��A�O�����(g���HlO�����t&�v�8�D����`D���')bH������:	����;�.	!�$������G�������X<JIl�b��c�y����<>��Q�
&�$0'�I<�>�a?"�$H$>Ab�#��p�A7�!��9�H�$-p009��#�I=��1�$/���"�%�
!=|`"I�O��y	$��)$=P��p��H��I�Y&Yy#���������h��_�DC�UH���i��>2��M��S�=��'Y"}�$=d��#���a�&�id�*�)�����6��%l�=�c�>��#���M
6���d$�x�����������>��Hn>1#��FO�>��Q{X��FFb���T|�@%�����a�������'�D�k��O`mS�|D�����C��	���7
>��$6��&�;|�~p���"u�RHi	�xA!� ��@�D���>���O�C@�EHp$����H��^	(����I��������n9�n��$����$����$�t����'Qq��D`P�A�|~~%y���3#��,��D���DCRD�~����A'��B
"I��A�h��
D�"��&@��!�8��l(FP����~S�|��4H|)���IBo ��'���N$�@~��8J�&���/���R:n�J�0tB�E��$*{�"DG��G����|t�#�'pe��SQ$���V�*�j$�F��*T�J�*T�P�I*`���6l��eJ�P�I6l��f��UQEQEQEZY��J�*T�(��(��(��(��(��(��(��(��*(��#,,��J��,��l��f�M�*T�R�T�SQ$��*l�hI$��4��f��eM��J�*T�R�J�hI$�$��H�BI$	$�$�@�II$	$�R�I$	$��I$�P�II$	$�j�*YR��ZT�R�MV�����I,��@@@@9SM���*U6l�l�R�R����TEQEQIP�J�6��$%�I!!$����5`EQEQE
(��(��(��j�$L� I$�V�T���T�R���m���������0w���$�&��Hz[V���}�~r�$!��I"G��C�
�'���o��x��00Q:�`hX�f	�	E�Y�
j��m���O�MD��������E�,�(�Y%J%IQE(��1�0`X�c����UUmV$��(��(��0``��(��(��(��(��(��(��(���UUV�`��(��(��(���
(��(��0``�����UUV�`���UUmVe�����.��]R�J��IU��Q�2��������.�0``���0`fUUU[���&I�0`���00`���00`���00`���00`���00`���L�`��&I�0`��EY28\�p�r�r��������2L�$�0``���
(��(���eUU�X(��0`\�\�""+e�����..\.00QE*������00Qr����00`��IR�J�*T��$��]�$��]�$��]R�J�*T��$��]�$��]�$��]�$��]�$��]�$��]�m���$��]�$��`��UUU�(���I#���I#���I#���I#���NH��p0QE`���QEQE00`���QEQEQr����QEQEP   %����������`�p�r�p��QEQEQF�$��(��(��(��(��(��(��(�Q�d��2��������p0QEQEQEQEQEQEQEQ��00`�1QF00QEQE`���00`������00Qd�1&eUU�XR�J��B]U��B]U��B]U��B]UEQ��(���UUV�`���0``����0``���0``�����UUV�fUU�:��$�:��T�R�J�*T�S�I#��E00`��EQE00`���2����
��cr!�RH}I>��
!��`��LTE�"A!�D�;�C`�������(���,=��;����I������m��m~���W�xa�dw���UC����B(a I!�Y!�
����	�$7$;A!]�j	�	�$�C~��C�'�X��>��;�:"C]��q��:�<�A$��C�M������w�o��!����I�'��^�I<���C�;�4�,A)�I>?��=�D�	�t����$��A��PQ'���>d�~G�������$BC���I������j}�`��#%ZVc��f�c������nDOQ=�����}�����������~=���'����P?Kp�'A�K�V���XM�	j��RI�
:r6"QbY,-��B�M�!�8
5x�Irjjup����!�QC6m����5�1)��I
��s$�d"t�r�I��b	���H����V�Z�Y*J�����-���o�k�79���m��^|Mo^
*��s�UU@�&�R�T��PUU@�
���
��*�UUP@���UUUUUT*�UUUT��U@U@P@*U
�UAPT. *�������
�UPUUU*�*
�
�*���
�*
��***
��PUUUUqTT��*���PTTwwp���5���!B�!B�!B�!B�!B�����!B�!B�!B�!B�!BMmmi��m��`���!B�!�`6��r�!B�!B6�nw!B��]�B6�m��m��m���@������!B������[[B6�m��!m��B��:�B�!B�!V!(B�!B�!B�!B�!B�!B�!B�!�B�!B�!B�!B�!B�!BT
�b�j�Z�V�U@b�j�Z��!B�!B�!B��l�!������p��C�!B��B���!B�!B�kkhB�m��!B�!B�!B�!B�YX�#eB��!B�!�@������!B� 7"""w]�r"""-��������B�bV�U�����B�!B�!Bk���!B�!B�!����B����w!s�����<��*�UUUP*
� 9��UPTUAUUUUUUU;����)UUPTPUUUU@�UU\LAUU*^39�sM<���O��o<����H���$�~�W���|��[a����kl5���e[
(QF�h�FR�0���f��n�uW<�by����Dy���9x��5*U*U��j��|��*ff$*K�[�V��_ 
)���orEl��L�4C��pw[m��m��aL0��mmmmmhL���w�?�'P�M�v	�8��%-4�I"��o����L��*T������&�������Ra�r�f��A�����|oz��[��[����`��E+)F""!�v�W��}�o�X�x���UUUyA��l��U{���}.���
�A��b9`\�
�-R�-�L�������
�Je�r����`�O)#qx	��<�@�qD�I�
������{w�v�oAUR��U*�UR��U*�US}������oa�����nln			RT�b�����U:eT�P*�U4(U5T
��M
UMU��SU��������	�LD�p<R��UUUV��
���R��A�%[oh��m��N#����$��	���*
x���m���)JP�Mh�MG��a��x�����ZT��IRT�%IRWwwwwwwwwwwwwwwwwwwwwwwwwwww}K$��T-�'ACn�j��V�[zV�j�(��4��"�����WVR�I$��R��*T�R�R	*�������)��i! Hhk�V�k���Xa�p&! ��F��"QO)$Q6�#a�Di��x$h#�M�n�`���U�V�Z�h�0��[K4��mV�������I4����L$	$�Uk�����ID�'� ��E��{������V������<�3R�d���)R����oa�����{Z�z��`���E<��(��V�����I$�M���6�	����'��A�7�B��A��h�Ja�F�a�+]���������,��i�:�iW��T���DC�#q;	��(R��1���{Z�F���L�QF3fD�F��YUUV�C�p(��L,�(��Uf0H�"DU�_:�u^�U��#x��C��0N�;��E32f���m[|�����W�G��^�o���	6jIl�{�����U|-��SQ����Z�����u����x	�	�GD�nbR�U�R�Ua�G��:	���0�:�� �U�����>0`��W�[��WR�]8]8]8]8��� ���'@v(Q�'P�M	�J%��Gn�Ha
	D�D�!�I&�
�M���&�7�N�0N�n&�p���4�J'`�'
���j� 4�)JR�$[m�m����)JR�>���m���m�H��d�u�Uk��?�G��n�O!2|�����R��)F�s.s���l�����o#�����`X��Dm�s����Uz\�����������D�]�9��f���o�5��<�x$:$�������0Y��cY�j�N�4h�[0��M4a[f��e��r�'+�\�������$V��w�;��<��x�y�-mo!��	�&�y��8�V�T$��e�^:sr"!h�J�D�&�0J%��&�x��a�a�`�$�H�	 m��T0����CM
1�VR���-I�2�3
��E;�0�n�4%	����YK)e��m�[�'a9H���#�$p��x,�,UR�x�!�Gp����D��.\�Z�]k5I�p�'�����vl���|����w���\��������8]�;�Z�k���_uiSHZic�$��xS)�LH�q1"����g[m6����&a���`�lh��ccc0��4h���4�u5�wun�w��r��v���z��.��n��w��r��q��:�`�6
�t$��4�6	D�`�����$<�>y��	'����I%�33$�2Lcu����G���
�r'���j��V��)KA������U�uo���JSI$�yW�T�)BI$j���uR��S���
�Z���y��/��9�����+���Ju��������������y��'"��~��}p��\�bv�
�|Y��o���������_��I�Q�<���?�������B?��;����c`h�M�"�E�ITX@�W���������x>v�~!;�a�"I�&�A�%�I"~F��-7�J��I���B��X dH�,'�C���$������I��	Q"�D��,�/�����r#�D��G�AmEEEEEEF��+R�e1�cTcTcT[&$�D�Q(��Q>��^�k��MF#![-,������R�(�d��d�!Q�bY+eUUQO������I��D��8��O�yD����T������R���
�o$�OQ$��&�$�Q	��!��8�O!$������$H�I�j�%9n�Co��L�T�	�~0�$D�B
&�$�POQ8u�����b��-"�RG��cf�f���R�4h�h�J�
A�I'�N�I���j-Q��"A��kD�$��*JC���m���W\�U{������p�*Ot�>�N�<C�O#�|Q"	���G��a�(QGq(�B�<�|DdN���%�"N��	?��D#�w:!�-�$zU|eu)@
�|*�Q(��� �F��$n(�[�V[���KK2�@�T�J�j�U�������t�Gq�#���6�r#�L�o";�G^��q���`�>�etB`t�NH>E�C�#	Z�����[[m��m�k���B5_5_'�������ra�CE4R��m[�V������q���8�ds*$DhN�=B�F�(hJ&�4$f�)m��E�$X�a"��p��q$�1�_OP������B�(�E
(��`�EQ��(�E
(QB�6I��;�Z$�?/��!����P?f���=?7�o��������;�����wy�y<��J'0N���C�((P�#�x������|�C�5������������E
(QG�����	h��~BzBHI0���>���v(��nC�X���'^����Bp������"d����'���,���?�l:a��{�k��JR�d��+-�YG<y���{�d�>��k���?gs_���mm�z����UUYh�=	�	�%��(L����~:��~_�V���UV������'���d���p#�#�NdD�����������k�t�7�����^Uz�zU�^m���`�T��"z	�$4��Nm\��KD��2��
D�0P��(�"��M��@6�$'D��:���+��d�DT��AbD�"(%I�����
(u����!4#���r"$n�N3�hF*I"�����BY��	05�d�B�`�U��Z����JSZ"��(�����uVU{�v��G����	d��D�i''L$�0������
�v�C��l'�a=a��<��&��G�� ��Q�*#mrY$�`��Q	�!���r"""5\�+u+�WR�)jnt9����nu]78s�-j�U���+�1L��M��C�,)���K���H�q$�`J?7���Gq>@�#�$�&�V�Z�#s�3Sx�w�h�R�cfj4�k�[-��E���d���&��f�a���si�����A��N����tnUUV�i.�kk%,�9�"��wm���=��q������w�>)���f�����e�8������d	%�&�2��TB�NEQA
��*mFU	�5S!
���m���������6�i3K�+
?�(��4%�Q�'x�����T�4D����%j�U��[F	�����I�����I��
��ap;�n7hOg�GhI=u��-��	������G���vI'�z
�T��)%JIR��������
'����
((������C"D�L	����F(�?����|��'���B������0R�aF��
���Z�,���$�"A��!������W�����$hHL�S)HH�����G�`�#M�
�}m~3 ���=�?h<D��

��?��#`���������?4^��uN������e�u��T��u��\��wW]r�e���:�&�������.�n��)�v�`0���EJ�)W�;��Wn���Je���n��Z�����ZP-i�Z�w����{������[�������8���n����$����p��p��,������e?g����w�x��*�V!(i.��8���������,�y-q���t�a�9���}8I<����&JK)F�e%K��%
���;�����M����f�c�a���yF�3G	��8:�\K:�
��gi���a�������������Cb�%9$�87:��cc
pS���ph�cs����4Q�N���QH���;���I��GI����'n����|mN��	��8�NR8��y�Z[w��:��.����8��`�Q��M�m:7����<��M�xN������/���5��.�����W�t������~W-��{���a�����/���-����_���W�W�)SW�6�w:��Q�Fs�q,���p��k���I:�����M�����\�#\�p��E5x�i8�g�g
H�7S��Ns�(�Y�s\����I:�����8����15sk�Da]�
f��Qmgm(�"�b��'u�B�����dU9�3���������#
$���g��l��S��F���er(�+�����JE�1��_1U�q�L����DqQ�����u<�,��\M,r*��+���E���fs�ove�:
��&��p(�s&I���&�]:�Z��F�G#8��
�M�/`�6I0�
�%�k��*T�R���� @m��h��;�F�N���
�E	�0���1�b�^���7{-=�������0�\�.�`�c1��f�f�f�f�f�.D�����$��,����b#J�������$�R��J���^�U+K	EUUUTM�r�P��aL��%.e��[[X�	��U����H���I$lF�6"8a��!Dd��`VML�L��{��DvH�#���L�Bp�``�G�9YP��	>����	��������'�"=v>?�`��;�>�>����;�}���!$"'�����|!I�!D�#q�S�#�	6	�$l;u6��m��������u�A^c�#�rhu�����:�H�ND��"��
�'������F����>?����O�"8�g�l��mX��(�	TC�0��{��t�bfA�$���q<1�G�B>a�Dh�?/����1A�Z�J��'a ����M?�	>E�J%bGs0'b��xE�`xQ5D��?xO��y=�&`2L��2L�d��=��{�T����S�*��UOx���U=��^*��UOx���U=��{�W��N~�F�d��N���E���L���7$C��d#�q=A���E>�))D�2�R���������d=�����������?��{��A	���!;	�	���"]�l`[�	��o���0�#rlr4ac��e��l�UFL�my��8�x������r:�	JS���afh��v��m�Wp�|W�����:5n�\���gu��i���vp^�*�J7�&�0Ja2`N�)�THt���'a)oUo�Y|� HJR��)! H���
���@U���R����1�fU���|�7�bCp�a��h���a9�(P���\�?��hE�� ��RCD�y|�>k�d��-Y�����c�Q(�J%j�U�����}���z6m���6����zF���7�\���������sj��-�qqTb.m[T��."�*�E��j��%�U��[i&�����N�OI�Dd*�z�CM@)*��0","Hh�AG�q��=|�uW�[�.�&a37����xE���srxM\�6qF��sr^Z4W#�BGH��x���%��C�s^3#�0�
Sss$�)�M�ph��l2K'%&���cy��������4S'�&�v����������z��YQ���Ky1�u��(2�������xdh�Spb)����j(R+Q�M"���Spb)��y�T5B�P��1�LA�����S.�s���El�tcrD�$�O`���Q�$'P�Q�i�HADT��IBY"[^��J�R��Z���h(H�	"M��7��#����N�BuDA��J!D�|�I!��D��u�?	'��Hw�"l����=�9����v��7)�8� �Iy�jZH�T�#�##d�&���E�_�D��?_�=
��m#j�d����3-q'/k���_���g�y��<G��C��E�$����I!|�������!�;���H���!��4�IIIII6�������+F�p�$ ����IDxP�S
R�-��-ZZZZZ\2@x����
p&�B�
,O�6J���
#�����	*'�`�:R�B��XB����<J	�,[e�%1zr�p8�Fg����c!�B�N��1��	B]e+Cl���ZF�bU|�M�``��D�p�mH�%B(M�J����h��$�M�P��$`B�jx���u�cB�B�A�R R��i
���P�B8
@�%!0�#B)������w3�������� ��v� �a
����@����&�MiM���J�MI����#1	M!4�����(`�<�"i���((��;D��4�!���`~a��������$���3���*��b����A>��(��=�]F����a����,�������meT�n�����)��T��L��BhF���$hI5�RB���QB��
"���c���SGK"n����PP�B�G�BE�0G�M����h��0s#���N{��.�la$�H���q(�(�q8��L$G2Bhn(�@�����/��xt�Uk�Z���W���A�P�a(P�>�*$���o�� ���0F��$��|��~�F�%,�b�I��l�R���K������=�z	��qAE�DD��#BIh�w	�r����u�[�V�*eM��R��jXV�KM�jfQ�	��������9	����?.	���ov9tIG�� ��B�S�e0O�r*�9I$�	�	��$;����>>��X��51���N���h��0%,��M���(�1M�_�#BsDvU��"��|G�q����g�~�7-��VU��Z��R��������SmC�/��k���9,�
baR�h�Q�dZ/W��M��
����i���\��y�q�����.j�3��Uv�_O���� �0P`�@�0�6	B�0���DE}*����k�H�T�$1������U��
%,UUUU�F�;D�4!����UUmV���yB�1�B`LB �RdL1=�ID��
&$%	�I�����v�m��n�aKUUV���	c��B�"�,KdK,�[J��)Jl�T��-��m	Y�Z���B�� �* ��
0*���i�*R�JJJ-M�F1EQF�6k)l���jel����* ���U�%��[�$>�#p3a<��)b�O���>�#��4y�!x��
��I	5�s$��KKKKKJ���C�������M{����Wf�M����Ju�$��Hi4h����(0Q0V)���X�;��!HxBQ1��'�Gb�:�	�����"{Y��1)H�-�e��l�[-��:��
�%�����$0���(!DP�!$���n�Q��"�
�};�p�\�� ��!BTZ*���U!�#�=�&�L���(�(eI���.M�0)/����J�*�w����Qg;�*T�%�_��;DC�<�B����?A�Dd�M"e`��
�u�t�I?@�G��E$�?�z��)bR�����2&���c[���*����55$�IJ���
������U�����Q�c�F�l�[����PN���V��I#B(��PJ��r%���6I�`�	D`�����A�R�yZZ�j���2l���DD��m[���P�	�?I#����U�WR����
^����t$6A�PQAEI#��(��S����Dh004��V�Z���U�}m�0%�%�%�0/#s���a��E��0���77���t99767)4r9798$�m�]�a�YYP�"�L)����h��VU���g9��
g9�Z-Y�������52aL�2�W��yr��;��������s�l45�9(�� zY!��#q�N�(�Q)$TCB(Go���OD�!D�t�Y�B��I&�	�C,�x�kB�,���������6'��
:�$Oq7�O!$��I�T�y�I�M �<�u	���G�=�uQ������4I=���dS��wD$��$Kg�R��+B>�Q��;Q��
�`�Q�E+)T�UXy�+�DDDG��yW�J�J�P��J((Q(�E�F
>�(�D�AB��

*IR��((Q(�P�QB�0%

((Q(�P�QB��(`���>�O�G>�$��B\�c����B4O`p&Cs�$��`�������	6�I�QD�u^�D��5Xd��G`�`<�A&D��(���v*���(�q�k}��*����$�� �!bBLH��E�2$P%6	��?.q�!6>H���I��@���"3tC��E�Q��J((���E
(QB�P��B�E
(QB�P��	|�O?�r=B�QI}L�
)B�E,�E�(
P�4l�T������|*�6P������m(��#�$�$n&I�oa&�4	��!���T��I���BQ�GG%��Y�6jR�����j�e��"`�9��S�@B=�!eAeb�[%��Kd%����G��@���#��;H��"����20C`P�XJ(�&�"m4�b�WfM(������1���D�~v���Dq�r"8�/^g�^i�����.�IK#RQ��
(�d����"�M���B��![�w��&zp��p	�,�e'�1��|=����^��%�dd�+|��\Y0��zZy�#�9<�I�71����Ri�n��u&�7Q��M7"-�:�Db�D[������B��kR���U�V�kkZ��E(�T�U-DTCi!Dd��4(� �E(�dE$J�d�M��)JT�����L��m�BT��$�%	�
�I�?$�4a)�D���-��-��-��C�>��4'xG���"��ZHQ(F���
��#dA�!$�n��aR�����l��&��IT�����@�D���$`��q�hM	��Qb%�m��-���#`�X�n<j�!�|;��#g������Ib@�BM�"�E,5DBLt����m�H<�����`4QE��QdD��"�o	�a��[I1�o������<"C�"F��dS������|&�i��i`Q�,|����)H*K%�ZZ��(Z�`!}0��*�f",HA����������������V�y�^S�����K�t]��������0MY$�EHJ$�Z�)J�I&*U����7
`Q���&������ HiE�k���0�!�S~J�um�W����:�:d��d��~��O�i�f����G�{�n���DGU78rnR�SA��������5�/d��C
�d��H��qG�7v#BLHJ �!A7��G�$�����)Je2FH����4!���I�@$�{�G���DH�$�?�~�$���"�rH<D��d��~�@����L�1I��������6HH�!Y${��=��j� ������.EG�@����(��Nd#�����UUUh��K�UUV����O
����	���~�ca��p�O4$���B:�!�����HX>�$�;��G�y����}wA��I��1�e@|/�K�wyVm:�au�7JJ�,mi��d��%�L�j����MI	�t'�	~s�^�#�"�������7�!�����/ke|�&L�2[e�u*��	s
d"�6s������e%�W����T��[��������m�{��) ��I&�	�l<b(��ux�}���D{�+���jH���Og���R
�~@����Od�,�{h!���h�#�	#a�R��9�$"x����$�RF�4W�=P<^����\�]0���fY�e�fY�ej���[�O��m�^��Z�^��T�x�'@�'D��{	��x���XLX���&f(*�(h�?Z��t �}��"�4~�d&�bMXDP���<9��I6�� ��!��f�3��?H���qC�O���OQ����=C�#��#���P��o3��$n�:� �R#�����+%����YS�e��g�$�9��!-�'��y���������!:��u�&�R6ne"�'�DP�����P�uA��F��I��+Uj��V�Z'���F	�(y�c��/�d�����#����aB�0A�G��Q*�ZL`������vI�:�&��-��0�SF�)���s[[[[[[Y	N����8} ��v��I�$y~>a�l���HUe�E�d��90�,�5Z��U��3"dL��2&D��*���$����M�X�Z�QP��L�Y)�����U����RHI�$z��[{�oj�|(�:���%���� �%���� �%���� ��.@X	`@�	TXA@�F�)KUUUi1�J"J"J"%*R�*R��J"J"�(��A����@���E�n�D�^�����$�}���9C@�����N��O��'���H�Oy$F�vBQ�H�6���@Z��_$D����	P������,O:�!�I�DQ�(Y=��
2��[`��E
(QB�P���F�yx�%�B�'p�M�DwA;@���!T�"*��*"$b�D�Gp��P��a��X=���,~��r?��D�w�>$��R�NdI7����Q�Q�����I~�4��$�t$�lHz|��iD���S)iiiiiih�BLBr�����a��Dz�EA���!�mEDH�#�0���	a7B,	���$x�� �?9DF�Y��R�>�,������>g�"H�!��HN���G�}���$��<H�$���"=���!!�a6�A�(�F�l!a�H�0O�G���ID����Dm%��I'PuD�[��nMh�A�sI����;6���3��`
�
*'`��&�(�H�N�=���HI2����n��(Gl[l��eL
M��H��*C�{k���7��7[��)���N�������h���N�������h���N����m���6��`l(|x5\�0�!J����Um*�P�*%\�R�V��j�J��\���T4���T��D��JU�2��0��J�u��%C�UN�TJ�u%+iU5P�%HR�]H�i1�x�u��U��%
&0h��
��p0i��h�n����n���tqzp,�g^F�r6�w��gh��6�������8��i�����e��j��y������l,�|��Q3�K��x;��I�G|��E���aJlv�&����)�M:�7064(����h�nL60��)J964R�d�L�Sscci�����lL(����0�������CE�i�	��)�,��Z�E�0�Z���h����N�m6�M��5��c��j��V�[
��q\���/[���U����us����7�$����^A(!&�*Bj3N\�fT@�Ji��"���������R0De�in��U��l�s\S[bkJb�
�����Q�%4���#���r�eL��y�+�a�bs�,�'�A�
1�Q��0��0���j��� eDx��*fIf[����)��c���%�bS�1H��JM�)Y�S�������0��0���j��� eDh��V:f[��-D��<bFf%1<��F�
p
1���i�Ja�����Qj�P�V������l9
�q���7c��h��G-��hF�#H����+V��V�Z�eM"�m��
���G�a(�%	����:	DJ�r&"DG���I�;�d���`��a	#����=G����m�������������*T�IJJRR����K�<^/���q8�N&fe���"jjffffffffffffeJJRR�����J�+)��#�M���>A�D�$��{�����t����m�}K��I8��G�Ht	�#�}���:�$�,�,91�
�s��M|00K�rv	Dl�lD���?�O�Pl�@��C`� �- ��bH~�8#�$�:�I�
#�tt�0�,b������O
#�"<��!����^��4D!S
R��Z�G9r�9r��SRmkm�z��d�"'��d�#���I���5;	�\�n#�4�1D�$Z'�<�A&�z��I��E'�R�J���1YJ)J����8B�)O�:���IU�%�� �	��1U[m����=�
(QB�P��(�E
(QB�&�P��I*�?wm��:�����v���`n#������0`��Z��V��{U�QCahI��M����"�� �A�QEH������T`�d���!�a�(��i$m�������!\mp��)�R���x��+g�=o��IG���Z���V��:����T�j�n,
�J(QB�Xu���#�����3-��S�� �D�:�5%�I$���-*�O�nT�[�N9n1�+����u�W��1�nt���;���s�
����:����\lf�Vke[��B0`dE�@�p�?Y�;c��1��1��1��1��h#��0��lB
��������F�k~���d�t�����#YE3���]��:p���c�a�B�cL&�nSINf����6n�Jd��66)�i��
�M80lnL0�csa�h��R���[��lY����Z+F����2V�����t��e�s��������T�s�L(s�R���M%��"�()��i!4;�N���f+u���!m���MEa�58e�MR!a����TbfaFxv����nnp�/��@�R��L������e�(u�PA0"F��55�����^Qj�J*8��R(�M��)QJ��P���`$n\
'7Jp�Z�U]��.o4���ih����7
����F�d0���I���h�[4U*�����7�p#q(�#q2�� Hd��J��	@������[�Si$*�8B`��M�qV�U����u_�R����$6�7M�l%A�&�6B:	�������Uo5n�_Z��JS*����	��Q�����I�4'"n'l�����!3�����
BH�N��-d'Q���9���
F��9aAEP�&�+�2Hwj�m��Q���(��H�5)&�|�v��c��4�du���IC�W.��p'"I�0&	^0�#�"7��=
t#a4j�#oa0t5DFB������$�����m�l<bC�G�$���>!�
Q��0��%)Z����H�	#Z�������p���z��F��>1k���6
�����"�I&�H�����B
	����G"9��7�m�K^�o�����* �����JQ��CT�hG�����������`�002�6
��a������F�a�S%
R�aL)��@L@���"M\*��K�:�f�hw8���
���*Uu\�u�"*P�I�Q����d��H����������3R���0�*�K�^�������cEF�F���i*�t#��G$��7���!�M�����m��m����ob$o��n#�N7���`l
	�(�f���P��Q(�*II��3����3�>�D�����D��(�QBL�O�=�>�����y��A��)��NF�O�X`(�c��=���)k�nJ�E�����t������u���8{p���q���'qL0�����SF�5489��X�s��f�5�����[�c���Z����yl{v�����Z��wu��jQ"#�%�&��KH�H#�4��"HmH��&�pW��VR�J�QA(����P��������x4G(��A�|�?����$F�H�G�0I�J'�����#����D|"�"��"h�B�0n(�P�AD��$TH��{��wc�D������%�aC�>�B�Q�6��T��"���R0'H�`�$��I�t�'AA�<�d�3"JA������0�	D��`��N���d��}�`�
�BN,�O���$�7��0�C�,��)kQh�-��h�P�Gq��`�	#a�O�����<�����������J���7I$Z�0�,�UU��((���E��

(h&�`hP�(`���	�0b0J"=���a�t�?(����d�yJR�-Z��������5�%���d�BY��TJ�B&	'����`�#��Bn��I ���B��
�������I$�(QB�P��B�E�%[fI$��Q(�E
(��3Z�C�I^�=�v����J���+)k��1�E�iV�k�����(JSJ����%�b����@��k]W�����J�Q$�	&�Q��P�((��8�!���>��>��2��VL�X�4�
.�K���5J@u���������������������IBJX=����5����=4���m�pd��RY�i�����h���cF�h��E,L84a�+�{WR�m�����{Ojk%�*S0�2���`�jT�a��"�S,���A�u
�R�� �"�T�!��wP�E(1��)L���oH��(�s�I*IBHI��n0]���j���jI�&�J&��&0ND`N����`��X	#���8���*I�9�F�!�,��#A�I��A0F`��������;��C�~P	��
|�;�O�=�|�8x??�4w��~_���Hw����e5��-���G�O���������������@�
����Z�������u��w��}sG����w�����>������
��������t�<��=������W{��W��[��]����li�;������
v�U{�����
A���<&�����[�v��t��R�l4HJ���=�/>�(=���������EUDL��}�z@R:)�l'c�����:�t��g���m�jAJ'�������}��Yi�"��vS���e����
M>�V�}�Pol���*Ol��gw�y��-���tPN���96�*-Q����^�9x[M��Z�����t��G�p1�\�]���U��F#���!H����K��z��d*"Q.�h/{��[;��<�����H�!��v���J����kC�L=�J�I��"d��D���Ojj4
iJhB M��j`����?)�I�4�f��2��J!&�E=Sx�����mOh���@ C ���I	�?�)��h=d4z���H�@�444��1dM2�)�2z���4i��
�"����4����O
i�224�z���������JwV�H�_x��+�D�_��>������?���I����1_z\����V���j���4�wnL������:lA��P�X���R�Jc��B��X�]
(7vX
b��U�U��eFS�)J���1�i5u�T�whQ�t�WL����&I��B"�!�IB���?��h�,�ZB�'8KU�ee���W3�(��3(������L�"�A��=�p,
d�A�d�d����F���:>��&�������CzfV�KPBd�I����
�7)'<t���7M����r���N	m�U�K���Q1�{<�+�9���6�{���b�)�d*��Z�!Q�B��L+�q��1dU�4�jL�����1��V�L��1(q
�H���P_�"���s���E����.[��J_�r����\�����."QR�HB��j,��gq��[��u��n�8�����u�2����L�����/����[��)�g'���D:�����@�:]	�-�$B4��b���QD�����������S�U���oy��m�q��c���#
tU1��:
|=�
tQ������� ���1'=,*xL�jf[��������E�H�O<^,��S~���EQ00����7*"K}��z�����W�����K��&:��O�t�3�/��]�	t�����E�a{��*��|�G����e�0U^����>��w���t�����__w�����W���I���n�KA		�U�c	
<���m�{)����|`j[G�������|�'��}�M�����p�����$M���||�����BiR�������_��{f�{=������H�
���`V��=� ����Z�xvVN^���)z��~"SG.(i!�a��|���+bvm�kuK��-`,�:	��V�:�)q���$�h�TLJa"n����Vg��2o����.>g�4W>��������Pi����Tq�����F5s���"��>��f�kq�-����zM�N�B�C3z��M�=7���z�x���u�����s���r_��M�K���I�x���I�
��@>.����Q;pPK��A�����l�65E�j4V��	1�������4�Q��>t�����!�q�p�5
L&��ID"����0����-�X3�i��<�`!�S��Q���M���Xb-Md�,�/�������AHD�b��T��DI�=��~��=�4E��*�Qh���+�O���M"�(�����of~W��py���V_cL����o}��=�\*�=��J�@����|����������$�	��	L/��Q������I$���	E�����d���r���D�������g���~_�JR��)JR��Z��f^��x��(���!�T��{�#���w�/B�Ge.*|=~���SJ�PU���p:��}����^*K�g��pw�\�>���}�X�J�p\�����}{�=���{s�/�����g��bV��BN� }��f]�NI	�[m��g��ix��smY
�I'YAd��=&���WF=����w���)JR���?�##r;8�����?�;s�_�����},�r;}�x���;���\���?Z)5�/S��U�����
�OU�����9�:���������>��������Q��"sQ6��.�'s���4��#)�1S���^,���
�Z�������F��������oX����ti�SuX�i���	$�1��E����=��u���.�������y��^�)�p��G�X����V\����z�Y&�H�0AT#�����y��������=u����I��i����-�p(m�I��������F8�d��s���|�3���H���r��&�~9��i0��,hh���Q�F����o<���)��}�X��(RDMz�-_��,�[�s�c��GXd;~�UZ�kx�����hm{�^J�?�]�����k���
wt=^�����h��2������T
,*�,�"3&T,�-�^������7���_BJ(j�G�S$�Z�#�q�Z����<����uN��o�j�j�������@�
��?�B0T��������d��Y��w�J�/�C�u�k�=���lj�w�����i=�sl�:U,J3��y}��F���$.��`�(�g�o��w#����������k�Xlq{R�K��}���^O�g��l�n�����`0��A�!��?����)'����UZ��<�gz*t�Ej�1o����;-%�u�@��%%�J%b�
������J:���&�K���,A5wkN9�$D"b��w���>�?��YC�H�LT�DK$�[��$�����]�*>���
�?�����R�J�K�QT-���V"��,9UU�!������� u��������$�K��p�H�n$;�|!{Bof�U�������aq���8�Y �(i���"��v�\��	=��u\��%�P����I��I$��s6c�=Xrd�\�����{� 7��J)����<����K2���A����{o�����~4:�h��;XB�<)������GHx��b"	����������I��a�x[��@�"O2I2���""<�p��2h�9y�K�C����
C�L)C��7�-�����B�w�
$!BI��C�q6p���
�� �oT�&-WS0���X��MdD(v���v�H�,�L%U��V�( $R�uz�d(�pP��9xl����@[��=c����ep-�#��n_����
<7�������T�����<K��h�P��2��Q��ox�0�����BH��s�Z �#� ���80QA���N	(~���I������3�l0I(�����l���
!�F|a�2s���%�� ;�y���!��O�����~hk��i��Um����H�X����3^oD���'�m#0��,��$�P�a,C�h�(������F~�������*���w�}�VX�uX���q���!��iC�������rn�0|��%�G�����M��Us�0�pz�f� ��!���m��L�`���d�	��*��	�x��Q��Y��Z����{�G
����<>J>�x����/4�,�,�U-���H####"��A� n�����c��w�$ZZ����[����x8!��=��|�d��<��1�����M�P9�X����;�������jxd||�I�����T�������((QB������N^���A/D���,���X9�t�������v�����/�EP���I#/���G(�������{��_C'�*�~�{�>��|O�G������:��E�������QOw�~��
G�>I��/������*��&��uS!a"5������4��Fb����H��4���&If%��%3RRY5JY*]��D{
�6N�">hr*u���_��&�<�P�x�x�(�*���'�#��H�����9B&�"�*�����u���� ����S����>����cV���,�����s\��O���L���k��xJ7|��NOD�AO�!M����2�d���B����4��	�n]}�����z}���O���G�������c$b~���RD����?d��ulV���b��,�>[�}�f�~�Wf�w���A�?$���I$�$�@�L�$@2@����]{�����*&E�[�`�,_9u��S���b�;��>�e���K�#ut��C���0g�?^�P�=�I�����'���Nf�}�%^�2����E�#�z��;s��D�(���/,G[W�t���5��`��`�,�=�F���#!]f���8��;pW��Y����,�q����;�&
ET<������x�1m�������}P$�3�p��q��7d����-�������I��������d��P��4��^u"�h]���E1tK��"��(�*q~�`�z�d �d��f���;~������F��#p����`�A�&U�m�������8��g���1PX�zG�G��^������������B�;	�3o ��uMN��|E�E�lC��@�=�I^
t52��x{��m q�M�� jY���{^zl�<��@�G��C:2�|r<�kQ#
�v�#	%�}?�8P�	u�TET7*x
��pk�XQ\���(����w���f�������M�&h�Aj�~��?	������z�Qy�2s7����T���������5Tp��P����_J����6�N�G^o@����F�7�)��/������}s-�=�>|����05��l��~��O�9�~a��'O,��h[
����$!�raM�����O�]RB���(��.��9�����~]	oT�����k}�a�N\qf���r`�{���1�nn��������>C�D��&*D�F��? ���5�_��)��s��U�o :��S�9a��K�6�\/}��R�_��g�Vy��T~p3/�J������Sy���t���0v [c��}i���s��;���������������t�Sw]d�t����w���J��`��oxHv�������C�	��&D�t�:��Zg�7��Gk���.���w�1A�����Y���;������ ��jZ�~�>�7���+�0�A4�<���7G��t�j�{���4����Y���p���R��1~�F��*
���2I�)��@�F#'(���g�Rh�H��kY��+���I �@-��I�g����j#�rwn��O��pLT�����(i2~�����|>���gs��1��d����
�%���6������|�����o�u�������d�A��]��Qy��j��^�P����rY�Sy������zB�t�)��7"^�\%�����"��#�K)KBX����|�U�����*�x��``�t�gn��x�\�E��3����q��
bfhCR��y."I���L����!�����0�Day�Hi9l���"XWW��Q�{%�C2A�I�vI���#��vN1�]���0$y�L����s3$�Y�UG
m�/�IM����t��|��JC�A���vN��a��dL��'�=�b����W�V�KnFC9�jm�'E�:u<������0���]����0��h���zx��$���#���<U��s^��AV���l�1��&	#����w�a&:�wcn����
�(���Lb��ul����P�tq[ua�>�o��1�	�cM����f�2JP �!�u��ALa�{�7C�C������2�����Ws�v2�>�"_��I�o�:���c�<������%fe�6acS������gJv�)�
<,���cB2z�P����)1-���C7~G���hP~����&2`�������Q��^eO����� �WU9f�5�����0a�w���z
��{M&��I$�I$�I$�Ii)4�J�������5Ci_[4������������ v���{_[�<���#����]��"��{�ES�V�����;������������:��a|���`Ko����/=s4�K�\�%e��?�+1J�����(�^����-����j�����I���2���8��v�����nI�c�����Ju0I�$�C^���=������F|Y+W5_�
m������x
����-s=h����<��^A|���+�}"���������11�����T�ox,�<�� n�E]x���0o6�Po���_#Z+�8u9�%1G�E���)1X��`�eZ��D�DqT��<N3�I��J>���#(*���fN�79��Q���7�|��y>}������=DvD���d6�����$I��q�1)�pW������Bq��T�v���58��}5cg�w�� y���d|{� �oD��Qq������������%�dT��
M���E����=�\'���-��h���A=���b�����i`�P���������o����N���q�2*���l���5�So�/����`��:��������>�3��Z��wj���;Ntq�h%/d����Xo2�R(��u��\��3�o���YF��~�FL"�� $$v),4��I>�j�\��T�:�v�����������Lxy�Ge�~�o,���
��%K���^�
�:Ht#0B�&tx�z����T��a�z��i{��L/I!">��'�M�3��t�0s�x�G4����l]p���J�I<�Qp���y�-�Bj����bb$&+��{<9
\��P�hd���J��Yf�xBB�p�����E;m&f�� �1��Z������;���N$g�����&����^�sR64��G$��{j��5Q��&��>R%E8��kTS.j�N�K�K������a���q��'N��i�d,�z���; ��p�����7��;���z��`�������;:��?g�BHE?����]�"����n�\���H�
��4�XI��*���i�,�W�*�'�n0��!Q�*���4�I:��n�|LN^���7�*�7+���u[������T��k����g�7�/�3�g�?���9��c�q�)JR��)A�����h��.J�h9���^��}�� �>5Xp��PAUTSoJ�*�����P�
)B\��k%%��(��O���l���p������}$W��$�@�(o�<�P�8
��@t�=UQU���)�|��������[���?��4�m�[��Z���e��<�y]k��Z���6���;?KM}�����ae���d���v�l#���3���|�k���$�r��M6^h�r�K��(�P q~f���s�E��:`UW#`v-
��| �d�}�0N��P0|W��RB$��TE�5>���fP&2$���W�����%��$�gT��*�����hu�R�������P�Q��)�*��������7�����|����&c��}�r5�9��`��47h�}LT�^����
���!��~T?ve������	��������oX��W�`��@���4��n���1�z���
�v|�8B��2��Y3����$J����z?�H��R��M�:��rf��S���}]��
�@�� 
9 ��c�z��������s��A���4�	�-�{w!��(��$�Ty�!
���ia��#�_w���� �/�Q*��;���K8�r4�*��������mg_!�F��E����i"YL�	#A�lE����?�"�I�fZb$�Q$��dXD�aV�D�H���T��P)@Tx_�s��`@�w?y�Y�a������OY�Y
?�\���=��j�|a�;�>��J���7���\�P��O�H���=��Cz�2��nD�dI��c�9��E\=|�iUk1����)�g}����>	E��&H �L��� ����wT��5�K�0,���!��?"C�8��s#g=��@~Q~#T���fx�����������9����Q�Lz�����h�R7�'�M!
{'r��Z*.+�(t�����E�M~<~���z��n���r��������,�T-�jr���+�>����Ss��ag9������������Fq8���b�Q����S��^4�x���b�Q�g�4>��,��U���V�T,���KU�*������7�����V3D)��b��������I�_�G�H?m����1W�-��)Rd�PI��RE��_'����#���@����	������T#R$����),��d��]����R�]�I*�p��ca�c"l<��& 
N��hQ7n
I}�y|���OY_����;�j>��tZz�|���<�"v�d����;�����q�g����x"&����������
"!����tQ �]9���UA�l!FxA�����?���W�j����}������w�y�{R��D���}N�-���Mf����s5�x���U�������<�iu�o���Zi���zxt�N�/�~.�>|�H#O��9������t����<�����hN�T>��>o��w���A|���k�sFUt��'����8�.~zt-IC(
y���
�� (�^X�����9�q�V+9�T�z�4�&�.m�����L����j<p�g�L�k����[*���|8����� �G6C�"�^b&f\�H�Yh���|O��g/��i���[�A�����5q�N�����#��bQ2�G&!�KB�&&D��pRL�O�E}'��)���a� �I�R�����=^�g����z�f�C�'��_x'��=H��L��]�Y�&Q)X�@��d�I&S$�I$��)����PK��,�JP=I�rA���M�����?Jq=9�
l�M5NV�N���4l0\����N���;����*��)M,��L�I$�d�mS��IK4�I0��QJ��U��(����������8���3�N�;����}�
��+�����K�#�
[�t`sn�:a���dX�����@�'�1i^�n�����0��@��
��_��w�������so�rI;����*�Ux�p~�4��W���
���
&�������M������5yz��a���L'p :l���m33����`��2j�2���xc+������dr���qnV�J�[[x�^s�ur�5q�r+J��,�P��LP����_H�g)J(%�33������&T.s
���7�c�>66�L����A�=;�!���7��/p��@�����B��=^��`���������A����Tc����v`DEfV�FYt$�F��a��m[GJ
���y�7�-��!cED��(�� y#|��>��
g�F���2�$�Ii����<�u�^��	�J����@�j�B�H�:;�u����sW����s��X���9�g-��:I%��"9�a�l1p�������MZ��@��3�m
��<v�ogl��p��_cP3r�t!��u�R8JAO7���Is����l���v�%�������*��5�a=YY�
�/-L��@�lx�sI�AN1$�9bG9�!���b��0�f��2y��H�]�wo����Y���q��K?���s�(V�e�6r�:J�)��Ah��������*��
���o/������Xd�@
3b�R����K��L�S����wn�Z��@�b����]n*�{�naS)�SE�]����}_���L�r�������Z������xq��\��������	�D�j���/�p�4'���u�u����,L\��V�{I-�K�Vf��G0��
kUg,�NM4��#�����n�YrUee��?h�ZX����l��<n;�=VZ���k)h�t�<Z�:[^�*��8Y��p�7�*�VO�D����#$�,y#��u�>U%~��p�����.�(h�[[�H��2�q���Vk����;W�	r)��&�@�P�e:L}�x�{R���;�����L�5�+K��vV{9Dff@�!��.�$�x(���c�8�����a
��\{��rz�Gm����D!����4�]�� �r�T����A��,n}�mXHBm��d��v�@4���S{�-E}u�7������q��:��0z����t�G34���b���J_�YN��b�5}�kI�!ta�� a��4��.������>x4p���i(�bz����0g�&�^��U^!]#��/�Y�+��~}����R/g���X�d��TD�A�_=��:�3���El<����7Ln0�#8Z���������1Et3�������m��Vr3��a<q��~��*�W\�����zL��xD^qQ'�Ht���#��\����o�/|�H�>�Nf��K�^J��( $1���k%C��^���(y��E@�n�s�i6YFNb����G�aN\��_�o��qJ�rb���vyL-)�Q�dV�����j��&$��mL�[���/
o�l&����]R����T��n�xX���6�����
����(�q��R����\$��x�"�{�E�%f����z���,y�G^�����w#�e/��W��],��������hP+
��������e.#z?Qq�!����$i{���)"�l������4���$��
7�"(���dx*��OJ���]�����4�'�J��L����U�r���"@�IPXji�����2�9Rxi�x]��j9��D[�*nOJ����9~M�.ygo���\���.��5}':O1�)��������Ot����[��\�l�Y�<���`.��R�n
:�9��!{Ce����[�n~�>c�+��4�\���*��Z1�-x<����A''��j�7Dq�Y���������k�����z_{��'��s��e�[�v#]g��(����76.�`�b����`��]��	�^�R�ga������xd;q�
1��s��7�����4�����]�=������}������/5y��s���g�ph��)!2_�oWxTG"4z;���q��b�G�����!1��\��� (#������{�K (������|��W�)?�^�U[������|����:��5��O�����V��f��T��P�,|���.���n-��-���y�7�c�h�2$������<CT�1p����LK���'5����)t�~�A$`~����jT�@�J����_�"�S&[��\��d����u<<S��B������|q@Q �x.�+���L�Gw2=���������.,���YK30@@�a��7�u��G7�:�f������b�� o��S'e��e���=��JR��)JR	�1�U:�p#�5&���)7*�_��i!��>v�������,'��.��\
J��*n!�z?����'�v�����@��K��'�����>��ID�������_W4YA��4W�2�;������<e	�\�}<3s4%����7�wo����G�C	v��%��B�z���Hj�0��5s��l��BL�f�d�F+"$�9��pm�^L�����,\��l�Pa
�1D�m��~|<&_���T��*y�+���J�/D��%#�>u$�d�[���Z��?�v��k�=?;�UuI">+z�L�[�����k��J�cI$��T%3�Q��aR��e:K�Ju����ZK.��5>���as�����0���n.���Q��.R���S� N���W	���tv��j�]�8�����	�'���(�M�����14��9;��Q�G��a��u.�t�����M���T��B{GQO��nnR��s7T�g'f�.J~6��FB,ps5��$�	�	�Y�������DAGhX�;b�������e�r`���OO
N!C�3������l�UQ��e���"=�6i��<�3T�UJ�sSeUF�jf.de������N���U|;_s����N6�{Dw���T�z��]��i�!�IB��2��a�)V���C<	�8v���s��}�O����%��I��W�>:D�!N���)������]��*%@j���.������D�B� ���
��S��UP*0��"���)�b�O�E}��
�%8q�������j$4���vC(p��i*)�
Vx�b�d��I��w~]����Sv����lb�A4�,�sqaB\Y�FX�
���D�x���AH��<�E�|�>D���C�|���?�?��Xk������[0^�
���?�%�QT�SL&�Q�G^�3���8j��SM��A��t�C{�?zfk�*��x�P�A��yU�	$���tzC���\��������&����)�M-�������Hj�1�0����$��^���#�"�b����B��&c\8����;���0�p5��|�s�zw�:�}4�(NA��W{���FA�{m�3G�!	T��$i��X��;%0���Xb+] ��Q��B#�^����z�����8�U����{�.<��;,����y��>�V7���~_3���VC���l��`����b��
��j
:(64u ;"$! ��#�"HFFd��]v�R�����K�\�1��>mCJ4�1gs��{�e����h����kN/�����f���������:~i�T��IQ�)&KP{�
�$�o�*&�����L'�X)�<�A�[�|A��w����o8E
��4
�LApl�~��6%�}�cm����
��Y������d1���$"X)�CZ*U+	����|�G�y�<���p�v����V��r���V����r���s;g{�P2�v�xZ�@AN�4�p���ON�<�(��S���/�;����g��Z������O�Qp|E����� |������t�����z!��E"���O�j}=a�9�9!���S�����7�k�?n����|����������G���S�������!f�v�����F5
bw��q�}���(o�����[�	��1�#��
�N����r!��O��>.N�:���J�
�9��vO�1�yH�$Xj;]��!;�N�����9;���RJ�#�/�~J����!%PQ@����+���>�>�g���zUrw����G����}=������X,��(e��������'��D���������
���eKV[a�8t�����9��@�W�sdy��9�7�;?w���~��������f�g>��v�$O��H�[��P���v)�k���-�w�7=��}8�����(�
��=p
�~��1*�v��A1db�[l��Y�x�������1���F����J8R%!��6��?Ht8@��SJ0��E�km-�&x���1��4�I>]E>��=����f{�P=���h��v�(<��W"��Ri�����>�<[�@vwA�=e&����("*zmG!h�8��8��}E������C�_X)����7�r�������T�����_��J^U�.������+� ��Hl��K|��{V�+C���EF� �=&�)����d�������%�\���R�H�k��m~��O�������saz)b�V$��,P@��t�D�G�}��J�=F
z,�c�\�I! ��F���BI$�L�$�I�$�I$�I$�I$�I$�I!�$��I$�IJI!�I)$�@�F"�I,�I��$��BM�-�Ha�$��f`&Q$�I$�$�	���kt��x�t��!�O��pnH�/O�����5b�,�(�,PmW�fe�E������~s�$�=�!�8p�z����6�LGqI�������2i���"a+p��$�� �!�
��5i%LB1n�n�:��g�g���a���}�}�����/�9l���C�
�7L��,D�Aq=kk�����H�&V"H�����"�`i�Bk0�*"5��u���u��w]�w:���*" ��"�" �"���" ��"�*******2�"�" ��"�" ��"�" ��"�" ��"�" ��"
�� ��"�2H"�" ��"�" ����$�(��� �" ��"�" � �" �"�����**2I$�(���$�(���������"��(�����$� ��"�I �" ��u�]uu�W�" ���"�I$�(���u���u�Ww]�p9��wS$�" �$�(�������� �*2H�����2I"��" ��"�2(���������$�I$�2�"�H"
���fI��r�k!�����;^�n�h���d��;b��!�GI�ht8���Te7�1�,q��	���6D�pz�t��g���/�?4o�-:U�YT��R�q68���{�:�w!���~������y5�j!�(Orj�1�$&E�["$L��R�y���.MDd(�b
 �W�Y
����BD��r6V���)a&�|�v��"�m�j���[t�w\�*@�n>�
�
\n0�L�)h_

NHo��?>���B��]�r�x2D�-�/�}}������v^f�$��Y�l���������Q�1���R#����@���z�:�@�P��sO�x,KCCb"Y@+*���=g$V��d���j����=v�(������������<Ow�X>i�a��k�{�5���v��i'��u}V���$z�=�������+��><>���&f1�?%�p�d�JP��YQ"YR7!,���g��}���1���<��S��&�����t��3����q
-�hR^w��Ye�P�bZ�����%;2����BL��`�$a,�td�cC�_�����}�j�j��UE_|c����I"&��.����c��Dy��"���Yo�_������{_��Ok��E�k�M��nH�4�7pv1������rB���C�,��������BI$��'kI����A������$��;��3c����f�F����S,b�Q��e2�L�S)�1S�"v����i/��s4N������pP�1[OZ34��:���$�4@%p�]�S��M-Tpv#c�N��|Q��jtI"&����6"�[�C��J��Z�e���<_��|��V=���`w2	�q������u[m��U|{�im�9�H�Fa��o��HH�(��"x�+r�;"lqTi�������ls;�m�m�#8��������%q��{W�<N<�����YWL��U]cZ�t� ��rx��T[�:N�v#��8#�Tv�;��.��3���7�A��d���`BI#P�A�:�[#!Z$�F(9����26�;�3D��b��8�+f�]����W��M,�f=����`ym�k��D�|Z��u��#�'c�0��	'#w��������3�d�)������^�d�4��W�����k�.��X�/��)�sEi[1Q�c��(�1+���3��;r6������6�N�5��&��\+��%ID�U0.��Q8+��rf�21$$�^�����V�m�Zv��w�e�<�,6��0�B6�I&��~�%�9(,��(�%���QSh���o�cA�|�F$ v��R�V:i�!Q�g{wc����V�U9+�cJ��p8������������M��]����h������I�o4x�!�pGc��KN��"dF� TT�q<
g+�l����l��/������/�r���4������CQ�I���jIF�������UUQ��r8v�!
�(��+=X�U�d����X�=����J�s�!�����q����at��"�B�=II#m��� XQ���O�w@����fXc�?��h7��9�mF�d�h���#gk_)�� D���Y�����H|Xswu����4����}���)Y�S��B���c)�16:��`�m��U���dS_�����D�O$9���-���i�o�lO��)$�$�E �����W�<�}�i��`!�����bI���=���#,n{#������Rd	�J��?�'�=���P{R�$J����`�Q��8��>"����
�����g � ��r���$(�~��gw����
#bC��W���6���Q���,I��]���r\1�%����N���B� �TP�i��UV��j��������e�7��|�%�B�X����G(�����=��4���
�#	�B��&����(cEXI����N�wi����|{7�0:��Cbc�$��n9��U�������0����DD=B+���A�xQj
���RmH���g^������O���URdQ������]sE)�sAU�bG�!����O����d�lwA"UP��Nb��R *=�	�e"�=��;]�Br��#�I�^����������5�1P�'��>�w(�w�6>�?�c�~�����E�=G��~?�A:6�<0�S�����>C8$�m$���FY�"����m�{��hu����G�H��%BW8�v9fX������Ko��������e���0e��W������$�[!����&��n�QVp6���B�h0�j7{}�]p��G95Dmd����t,�s�YH��N�(:�Z�V��B|��e��&Ym
�r��#f��S��HeLLd�,T�����YT�;"�����F2"��f���(��)������d6"����'`Sq��9��q�d�fVCr�VK).Z��O�y�k8�#8h���/���H���;56q�Dz���x�����P�����R|"������$rI`�i��z3�I)���?���H��Yj�
$�I#���������~���e@�u{Oi/ls�����L�g�*�2�
Z����g25����
&�?@��"`���^	��������|N"�i�V����D�`E����X�l���@C�q����>6d������>���I�����F���bv1���lO����4��Et:�(���@�q�����a��/�T�.�L�&�!Al<��qp�?���$��;�����1��3U���h�'�*ABK����x{�]H����]�O�A���0��}��6]�7��o�����������da=�=��0�0�K�v'�����z`:��ocH�
4
-P�*��P���b
�������E[b�v�U����[���D5��u����.p���~��_MUose�l��%���^�G.�N(��F)Q�RO�>���O|�H���ur�J�9V��C����c�O��[�QAGD�.1v��/$C����}��vtC��
������T�E_����l�����H�&�;_��Ds�
�[A�-,�b&��JR�&%�11
���f1$�a�hnR'�v	$4Q�!��1��m���0"yD�pP�&�9�������7
jz��i�����@)K�R�\��%T���)k�F�����U:���J���Y����6o���E:��������m��Nh����i$����*��s����T|��,t���H�3��<p���5sHbw���v����N&f���Y~z���l�����t���f�v����q��n�JWZKew�w���x�k]e��nYR)p��
���f|��6Q��
EW���.��H�BHw�$����4G�MG��o����t�K��r&4�!t`�c\ZC L4l��&��H�0&G��u����=���T����e6�v���qnH�"mP�,&rb�G[�]4R��Thl��nk��%��n�r&���D �SL�(cD�%I�3LY��uY������$+��������_���U���1:/c����,�����n
~���2��EX/���������Y��\���9��n�����v�%1L�7��&����! L&.82`p_o�;]�������V���3�C�����=C!5�}}/�R�F<��f!��R];�U;~4��!>I�i-I�/�x����Mm	�}�UnN�}�*����N�'������W�g9*�����
��@Q8�!W�r����F���A.��R��@h/Dr9 �/{�������}���%���r�8�QF�!"�<�@_�#�E�1EQ�h��(�$���CQ"�U� }�@�"�?6��d����c�?8�E4�c#P8���|��u��D� ���v}~�}!d����������.�����;�hhF$��(w����QP=����Zy�����"N`��lR j,
L���D
�*������������?!�9�8#`��%�!������*�a&���g�uUY����9�s�,VYd�C8�
�#���N\���L���BP�0&!�o������89�j�wF���$�U&���3���u,RB9��c�)��a�4-Rb��5�FQ���Z��)'8�t*�����-p!XJ8f���{�A�����)i4�)un�
;�bxc��/���Ms=8�&�L82�S������)�89c��n1,�D�R�w���v�h����I��SCL�&O>�aD��MK�q��!�c;�`f�
c&b�L��-�-�4��'x�4�hB���c�8SqSv�7ES5����
�Nm�9�5Ibf���z's������,�e��c(Z��x�������$���D��	�������5E�.����i�UT�))6��C<�n
���6b�yAhi�B���y��w4��b_�f2k�*$��V��.��]-�m��-��B�#6�Qx��H:wD�&
t��d~�m`�>����_X:�;u��a8+���c�
@���C?Q�3�Z����}8S��E�q!q�ei���Ir���=F>7�O�$���{�N���#H��=��]Z��y����!����;+'8����������2F���@�P���`(H0�5A�n�9���K6����N(`i�eH����B�:���}� ��{��=��&#���������M��q]�+��K������vr��J�b������������+W���H/�^�%*7q�9��4����,�q��
�Y'#dT�����`��J��!���s�4kV�[m��W	�sj'G!����M��f�9�d������:�����L���������?�B���@Ah�b�Z��,�
�����������]��MD8t�y<�:�fH�A<�#�|����
���i��+�9X8��)J��L*4��h���9U�
;��P�
�6�d�����Zf�x���kF����)A`)������3�8�?��va��vO,�(�#Z{/�N��qB�d
�n�S�q#�	�V���j�*�H��N���E,*�\($��1e=�L@P���${���6(�_�OP%�f��p#��P�G�~���m�>�������#M��#$� ����}]QA�!��Y���	=��p^i��&��Q*5�x���BX�n�Qd��J�$��=��NYwI�*�D��A?����?��UX���O�l�x��c��=�M4\J���@�i�$�qT�����!�E��`�&R'�3�[-�N]��+:j*����*����*���%IRT�%IRT��Vk��A�j��U�~��yM���j	�P�h������E�J�vM�OB��S�7����I�H���J�?Sz��`-e��7q��	)���.��f4�Wad*�
	����y�!�xi��h�Oz=���\��b>��jBOzh�pG� ���_Z�fx\���s54��5�n@��:��DM��z�4�<�b���I}�����YH&L�	 n�+��;�������^t�������R�H����v���x7�1�s"�I��2V�c�l�*���h&������Vyd��e&��Q
d�gh���e�2����0V
8�yx�'������8c���e��������E��c-�����!L�7���i�F,ml��&��,��\����������#)�R'tjM�f��m#�����X8laX@���f�"��#��)��$�f�a5y1�
��	�ni���S@�D��^{��?1~��O�������5��� �!�
��F���O�I+��J�"H�_�,�A�������_S���=w���X����$(�*�6�L��[6���&���n)�:�����
sC7��1UR�9G�O��{D��q���Bm�n�����D-��b�'D�|k8��I������BS�(�W��	��$L�~��bHuC0LF��$e:���{��sN��D. �f����]�����]d|{�O.�C���������'w�4[��M�D#	��@8��f��;!sx�N�K~���5[61���UQ`DT�J�$�JT*?�r�����~��FNv������E�R��9�������?<�&���nF��1�S��N��o\=*u��!�3�@�t4��v�2D�|zr���e��}�Lc5L�lEEEI�[d��n��8t�h����'����$�jGS���W�.*�<t�1�D�di����c���eZZ
��G�������I�#J�,����j~��$����'*q,��������k��^����$�� �eF��������az��9�x��������Ln|*N�sJ��4'�L�EP��aW)/����iu�D@��C��q50h�tC�
�����_n�ME�6Db.�%�����T� �e��)O��LQ&PO���,LOn^������>�9�P}��S�m�����7-L=��:$�1���/�H������)�d����iV=�A�dCUk�I&wj�3}?�)����K] I�%7�RH��F,U��c��)i4S"JT��&%�T����aiXLI���H��y���������5:R�������h^���������4�5Cmt��h���9H�S�EQTUEQT�9B�4� ��[!q�[UDu�D��b4Z�Wy��^� ���8������KU(����WL9D�1�����lj�@(D�!�R-3�$��(��J�=���;"B��|<b{,B�K�bO7c��W�"�=R�1d�QG��Pb�[��
�K HH��S6Ve�l6���V01X}-
������+�EAG
?�
H/q1���J��UMU+���n;(h<�
�x�~H������x��
��j����}��ji��	�M*E�-��E\$�����M��k�����]m�eX���:��Cx-^QQ�H���T�!PqfI����i	�j�[V�-G)"�\
L�'#�i��&	�(E��c'{�}��p�&���0�;��

���0)"�N�2����S<bF��B1 ��_��Q��kc���v����]{G�i�MW�#"����4����� ��Y0����0dE��Hb�m���������b_/)���M�ZS�h�c���s�F""�e�"&uh����%������A���>J�@����"�R�]A��`�B4s9�C�Rnp��
�����:Y"�P��@y���)7��@�Y�_<Nh��,��g6Gtm#�(�v�1��_�&O��1��kC�b$��A��VJj	�!�#�/�<�N7�/�)��TJ��(��#5��M��� �z�A=�����APe������_������7_������t�2d4��z����/<u��VA�\l���1� �
���\}���:D[��4N��N�$|��S��0�R�Zwvv��
�;�2Y���$��U�!�6���H�RTd�����|v�o|c������7G]�X�s����c��DO������������+Jji$�0���N�&�M����B*�"�YT�d����j�3,X�h�hH&F��SZR��Q6�be�V$��
�L�FMk��$I�d<B{D�E�6�������d�O��i�M#��j���E�Y������Kd�����}v�<^�������=���t�s�R!,��~���1���c
N��t��P=
T�o�!�
Sp+2�'�	����x��`�]�!�xca0�� �T�La0�tt��l���(+��e\C�|!:��Hd*a�H�|d�M��[��"�YH���w���s���aYo�����V���d�T��go��-���TR�<��N$���<�����=�	��*�b9p�lxBGq�8��ITT2>����*�"���"h7S�:��jz:�uLR)�1����AbO�s�7D�	`���mo�R���EY\���"8�Q�'N/��p;�����LG�J�*?.g��m��V#�<�V��}������m��gT�t����U�Z����������MS��
.a!�@����h�Jh�����7�\8 UD]Et�$DnY���X�h)�"m�
���u���h�r���1���H���#{I!��$�!�
�1sL�&��D�c��tlTlM��*1d�a�T�M�U��9ib�H�������b@���!��Z
�2��\��^j�����pGy��$K��\nfd�u����U�H5E�k�5�o��������r�y�wm1�������Jm����Xywm�J��&��%�3��DH����&r]�Me�����T�#!�����p�
�� � �E�VIP�
���"�(��l������Cb�EX�������m$p���*d��I��^o%lil����o5^xl�B�p�&���f}<$�c
����1��J��^,��~��$��N�����.h��fqTh��N%*
<��?�S�x��q�����M��9�9��vI���y�1ic����z���KIioqw����l�dN[�8�MFzX9_�oc��U�*����;�6D�_J��H���W��I��l������d	����8�u��ONj�����w�X���jHY��qTRSy�{�r�x&���8�E�b��#O�h��O��s����������/r���kj���q6U&H��>Z�x��n�r!���lqN�F���^�:�����%�{=����i��k&���%ED1EEF���E(R{�,{�U=a���I^�D��"��}#�u������]�)RQ����,G�d��l��u��d�t�
e���2���j��+�v����#��������G�����6���1<t4+�6��)�/�M�j9f�]*Z*�!�����\���d��ESJ�8�W�MMm�md�)����X�--��l�T+&1���~���I��qm\�S��q�/�(�#�A9��i-�b�9�Z�����GF�+�F��[O�I�r��F�ZD�Rb35�-�UI���G�c����4�d���e(���>)����\�XB�+JR�|����������l4�H��XI �
������Z`,��d���u�6YEk�7�8���^������t')J�80PV�#����Z�K���B�3�s1�05sp��tO�Sp+��4$�v��&d���&2F���\�B�0��*�$��P��&���|��^J���^�����T��!�����l �&�3���!q���k����JWRu6�;�&���I�)���a*R�f�i�U�A+W����ZY1I���6�	����|�;��c�
����BHX�o��=x�5N����?jp`>��J:��=�2y<,��|���i%�n�g�T!0eF��0����K�J����b!jF�B�,�����TdU��#��@�nj������P���8��"2�P�4�v� b2B�Q�R4���$��|���S���,�$�����Y�
T@PW��EG�j�J(@Q9��r3��D4���H�'�M��4�NM��UU+j��#E�	������_�=$��I�$v�*����V��Hy�*2Y��4����k�;�T�}�7��D7Fv�"��U-A�%�P� �F��O;2,���#)Q�Rd���)if���4���]���Ut!������/.�Y��-�6��[��^�]�U!�P���B�)�0��2�.Jh�4I��tX���@��X%�W�y�\�B�������w0]`��l�*`�-����j����8^���\ke6�a��[1`�S�������)��2d�����!U���������l����(�
6����g�}W�W&=tl>�}vCh����D��H���)1*;�=�Oj~���4�,���#J�$8�?A���s��u>iQ}�Jn:�{�� Ab�+yg^�}�BCP�D'�����MO�=�<�?��H�G��'�V���0�VO$�LI���l��qP��J���$?�I$�*,H��ITE)��m����mk���� ���^��1E<$���Pu�?�%��(�"�KiiF���e���l���L�����2e>Kl���J��D�[!ybz$�dC��������=�p�]S�N�����L��n��8���`��&7�����}3������;� �{���y�8�;��8�d@�
�(,���-)`�x��	��G�E"Y�#��7��a?���! ]���	u����%hZ���X`���a!��h��0���"\�1X$��U���D�mF,c���`a��4���������3~�)�}�z>��GI�|���'rH��#�o���b��\$�R��$��V.9���'�l���H�DiR&�L8���E�������_������g���=5�,9�;�?I�����,�(�#���������'nOD��	<��>�C��v��{C� rMH�8jz(�\�<C�Is�h({���r����q�=zt��h���Dn��+r��A������^37H���*p�r���.+������#�����H�
D��Y�/0��,4t� ����1niQ���Sc[�V"�/�7pIII�M�"�qF���*?d	A�� *�H	�)T[�$��)�la�4�b�E�#d�7;���0�U���b1H��o������}c�5�b1�i��6�m��E���W��I��%��=�D�q6gC�)�s:�bF�i'��m-����G�Yf��	;:N;�������e�������%B�DF���|Tm�x��[�����z�������tlUE:��I>E��fI�����(`��b��lS�O�F����������{+�Tv��_��"F+��1�5NC9��%6E��X"��}�T��������T���
�$J���W�4�X���6��D A9��!�S�xck��>�qb=I+fD���m��I"� H���]�	9� q�|a�z|xN��x�V(���F�;{h4�x��9�Z���d�hic6���������)���S5))�l���uQX�SRYb�3J��mmQ1cM�CUZ����,R�U��L�zo4�f6%V5I1���Z�]��jTj�(mGybF�"�'�P�Q*��Q)���I$��B�*jJ`A"���$�,U�V��7���)�"&��~��6DCe�� �*��#�X�q��\_b���|K�
�<�����1�!�����,�,D��+��!"���'�S8��#_	
XI�1�BR�D0q�
=(v���G��^���d�����dD����}���Z*�Qz�%WQ;d��H�!���{��� {�$D�Y#E�DTmE&�m&�m���b��(�F(��(��4TQccQ�+
=J����"
��s�l��QtUPTB����h�d�'��]��do'z:���OTr5�y������#���Wl��uv>�{RY���b���M���<��C�
>s���]�;�X.��������*��C!�Bw���.����O�!����GQ;P�� ��?X����KR|�BKA�'=�����r���n���F��	HC
���"���GH�O+$3�D�G!��&��d��xI'9��)K$�J7����Y$��V���$p�_:�:���A$T���X��=q�(�|
��7��OM����e��CB#�J��`RO�����_B8��S����N������s�����V��>���EG��O���?�"'xf�<�(-qi�OV���y����|�H��H�!�	�Y�,���2�;
6��j�G�a4���
5����@HB����P�$M�wvy������C�a�T�\H��������VCF�#S^������2sr%&�!Jn�3a8G���
��AMt��k�Vjd�L���0���O��5�b\q	���$S��C+xP[�9$� �l*_&)I�z$�m2q4o�f���-jv��*$z�%���j�<�%:�1	��j�FH$N�1���:#7�����/��R���`������R%�ba���&%=�0�����IQN`���r��Th����H�lGZhg�����E���E��y��!C��R�@<8a����N�&����t��
�.���0Cv��n���}��y�P���%���6���xm�	�B���u
�v9�gF��b��a��A)���c�,yR��$%�����k���G�X-3+��<����!�
���mfH
ZoH>�nh��|�� �/o/^ ��J��c�������X� ���F��dm
C���	2a�+1/H��bGC�<5	Y3Y%�,8����|A�6�-x4�L���U6�C�#�bO@
A��c���;���tF
�$I�j2kjm7�c��wj<\U�x�";m�d�DR.���
���E� �$��������m6{'Y�|#����ffd�I%�fffft���ff �M(5M�s���G��/y��"�S^om�*u��)��vCXbj�E �Q���E.75��R��we���SY����;��c�Y"��0��#
6����E�~���.��pbW�V;F���J���z�b��h�������zcN�D���?�D�L)�I��9#����%nE��7�;?=~C�����]s[l*��$��y���$)��|U��R{U�y$��i�A���eC���r7E��9,6c_b�����i��X�!	� �\��jy�D�;���	���7��G)���R'>x����0I5,rp����&��dN�"6q�r`�� �����Aj�IE�6�cF6MQ�h��b�������d�\��
rK
���LY�,T@Oy|5�^�A���JH�U���<9�m!�TR�t��$)|0T"16b��e�hmZpl�-nF�Y&�5dLf��P4�[kz�Oo���
#��4�K<bjy��J�����cA��	�sB��+����T�o�D����-��e�����m��u��3v)a8$���!�����=�*,�Q��G���3��=�J�������*����,���Kj��i�����#�/�e�q���*���4���=���.�3�3�l:H�bO
��N�7��~�x�+\:����qMSZ7��Sm)L�C�m����&!�4czsBi
���	�HA$��98N�n�S�2Q2@+H3�KB��x!��I!�Q�%�H35A
��UA�ID���JI�zMu�}����rN�&w�q��b�����P��!2�6�G�G_H��5�J�����]F��qE�D��h��Y��L�F��'Ea��e��fn�2e��C��xs��KE��wT�d(�%���u:p�JqI�!����J�Cm����\�V�p�I��JY N����*�"B0����f�������l
��ro�8sr���7���vn�d4B���� 1�}���1l6����	nr�r��v�I�{O�'l��sm7e�,�'ER��T�OM(P�
��
�!��P��
wE�j��kd�5"qGF9�8*�M�j��k��F��*1N
1�#p�6�:��,�q6I8���cr����?�������#wC�0��hr�z^.�Ci$4��q���Q���'�>��$�hz<26TY-�o�ElWX��p}=|V�;Qoa'�L(?$#P��9�;H�<�s�>C}�=lKbmf`^���0��j�����FB���@a����QJ��R�"��Y�`�N���.�%�����Tz�U4c���H��h��tJ�JQ�#w�D���'|�1�=�$C��l!$0�
f��J������R�t�4H�(��Hr-�[���&���<�rd[�n���$���!������h���t8���$������e���'�b|~�IkV������[-A$E�N����q����,��)?
��T6D4>��9T�)z�f���-;��������Q�2����
�=��V �
�qx�U�<.��5�B�%�(�2E��l.t!n!
`��cBb��$2E+��$�*���F[����+6�\��M�]�v��/-J[��N�^Ba4�(��I����ci�G��3.�p��E�r�j���[�A�H�	�����x�����&T��Gk���Z��y�q��-y	�="�N��P@�G�q��/����y����������p�f�6�{�����#�?Q����I���6V��QcN��d�/��H�4��bX�RQ*��ck0��V�Z������j(��������7�0��B����9��������D��E�����X��C�&�
Y��d�������<f�&��-,���Y��#������|���dI:B�i�����Z����W�A�E�C��^%�[��m_$W�utrg��T�������������#��W*��&�R�op�>���4Q,B�����;pVy������b(���N���.���y��?g�"�� k�;�*RR�"T�������Tt a �}p6M��N�����^O�A8����@`'��`�
,��-��m����=�*@�I+���A�A�0�6[}J�)�0iF�o
?�1h�����E<��L�5=�����n,��6F�jE�mvj�5��~]���?N6�1�e��F�����4��IK��F�,X�h��E]�^|���o?>���.(�B������q"�"�������U��`����<�b�W.�S��A���B�"��Od'�����?�������q�$x���y����*����aTV1��*Ow�<�w�~�O���~[`��D�Wkt�Q�)!��T�B\�D�h](��d�`a$��,�l����4���Ss@����VC `tP����2���;e�����	4 l��j����W���"G���%1Q������n�^����"/�+��~��7���O� ������"JT��T�,�E�*�����|�{������7�f�"�q�'�[mX���k�{'�u-�e>0� l��*1bL��E�Nj�9��� �iRI�����e�5����>��2���
{_�z�����ld�v�]�BBL*�Nws��X������yC�D�8b�A��,sy�����p�e+/��';����V�T��>����.��G�F��3�:st:����$X���[�RU[o�oaf~<[a��i�6u`�4�a�������$g2���:^��<���s�H�~��,G(�rK�����"$w�0��<a���a��r��?�`>�8�_��O����?������k�����������-c2�s����k%�<W:r�&:�3�2��i1A����'t!x��rE8P���f
#87Andrew Dunstan
andrew@dunslane.net
In reply to: Mark Dilger (#86)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On 9/15/21 10:38 AM, Mark Dilger wrote:

On Aug 31, 2021, at 6:41 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:

<v6-0019-Giving-role-owners-control-over-owned-roles.patch>

Synopsis:

The major change in version 7 is a reworking of role ownership and the CREATEROLE attribute to make it no longer a near-superuser privilege. This new functionality is in v7-0021.

Details:

The changes in version 7 of the patchset are:

v7-0001 is a new patch that introduces a single new regression test covering various aspects of the permissions system surrounding creating, altering, dropping and granting membership in roles. The functional changes in v7-0021 do not cause pre-existing regression test failures, not even when running check-world, despite fundamentally changing how much of this works. This new test adds coverage for create role, and as each patch in the series introduces changes, is modified to reflect them.

v6-0001 through v6-0019 correspond to v7-0002 through v7-0020 and are mostly unchanged, but are updated to apply cleanly to the current git master, to fix a bug that was present in the v6 patch set, to update the regression tests for security labels where CREATEROLE is used, and to update the create_role regression test from v7-0001 as needed per patch.

v7-0021 redesigns the CREATEROLE attribute to no longer bestow nearly so much power. The ability to alter or drop a role no longer flows from having the CREATEROLE attribute, but rather from being the role's owner. The ADMIN option works as before, but role owners implicitly have ADMIN on roles which they own.

Roles with the CREATEROLE attribute may create new roles, but those new roles may not be created with privileges which the creating role lacks. Specifically, SUPERUSER, REPLICATION, BYPASSRLS, CREATEDB, CREATEROLE and LOGIN privilege may not be granted the new role unless the creating role has them. (This rule is adhered to but trivial in the case of the CREATEROLE privilege, since the creator must necessarily have that one.) When creating a new role using the IN ROLE, ROLE, or ADMIN clauses, the creating role must have sufficient privileges on the roles named by these clauses to perform the GRANTs these roles entail. Merely having the CREATEROLE attribute is insufficient to perform arbitrary grants of role memberships.

The INHERIT, VALID UNTIL, and CONNECTION LIMIT attributes are not thought about as privileges in the patch; perhaps they should be? It would be quite reasonable to say that a role with a finite connection limit should have that limit thought about as a "pool" and should have to assign connection rights from that pool to other roles it creates. Likewise, a role with a VALID UNTIL limit could be constrained to only create roles with VALID UNTIL less than or equal to its own limit. Perhaps a NOINHERIT role should only be able to create NOINHERIT roles? The patch does none of these things, but feedback is much appreciated.

The docs are adjusted, but drop_role.sgml may need to be further adjusted:

<para>
The SQL standard defines <command>DROP ROLE</command>, but it allows
only one role to be dropped at a time, and it specifies different
privilege requirements than <productname>PostgreSQL</productname> uses.
</para>

I lack a copy of the SQL standard, so I'm uncertain if this patch has, by chance, changed the privilege requirements to match that of the spec?

This patch set is failing to apply for me - it fails on patch 2.

I haven't dug terribly deeply into it yet, but I notice that there is a
very large increase in test volume, which appears to account for much of
the 44635 lines of the patch set. I think we're probably going to want
to reduce that. We've had complaints in the past from prominent hackers
about adding too much volume to the regression tests.

I do like the basic thrust of reducing the power of CREATEROLE. There's
an old legal maxim I learned in my distant youth that says "nemo dat
quod non habet" - Nobody can give something they don't own. This seems
to be in that spirit, and I approve :-)

cheers

andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

#88Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Andrew Dunstan (#87)
1 attachment(s)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Sep 21, 2021, at 12:58 PM, Andrew Dunstan <andrew@dunslane.net> wrote:

This patch set is failing to apply for me - it fails on patch 2.

Thanks for looking! I have pulled together a new patch set which applies cleanly against current master.

I haven't dug terribly deeply into it yet, but I notice that there is a
very large increase in test volume, which appears to account for much of
the 44635 lines of the patch set. I think we're probably going to want
to reduce that. We've had complaints in the past from prominent hackers
about adding too much volume to the regression tests.

The v8 patch set is much smaller, with the reduction being in the size of regression tests covering which roles can perform SET, RESET, ALTER SYSTEM SET, and ALTER SYSTEM RESET and on which GUCs. The v7 patch set did exhaustive testing on this, which is why it was so big. The v8 set does just a sampling of GUCs per role. The total number of lines for the patch set drops from 44635 to 13026, with only 1960 lines total between the .sql and .out tests of GUC privileges.

I do like the basic thrust of reducing the power of CREATEROLE. There's
an old legal maxim I learned in my distant youth that says "nemo dat
quod non habet" - Nobody can give something they don't own. This seems
to be in that spirit, and I approve :-)

Great! I'm glad to hear the approach has some support.

Other changes in v8:

Add a new test for subscriptions owned by non-superusers to verify that the tablesync and apply workers replicating their subscription won't replicate into schemas and tables that the subscription owner lacks privilege to touch. The logic to prevent that existed in the v7 patch, but I overlooked adding tests for it. Fixed.

Allow non-superusers to create event triggers. The logic already existed and is unchanged to handle event triggers owned by non-superusers and conditioning those triggers firing on the (trigger-owner, role-performing-event) pair. The v7 patch set didn't go quite so far as allowing non-superusers to create event triggers, but that undercuts much of the benefit of the changes for no obvious purpose.

Not changed in v8, but worth discussing:

Non-superusers are still prohibited from creating subscriptions, despite improvements to the security around that circumstance. Improvements to the security model around event triggers does not have to also include permission for non-superuser to create event triggers, but v8 does both. These could be viewed as inconsistent choices, but I struck the balance this way because roles creating event triggers does not entail them doing anything that they can't already do, whereas allowing arbitrary users to create subscriptions would entail an ordinary user causing external network connections being initiated. We likely need to create another privileged role and require a non-superuser to be part of that role before they can create subscriptions. That seems, however, like something to do as a follow-on patch, since tightening up the security on subscriptions as done in this patch doesn't depend on that.

Attachments:

v8.tar.bz2application/x-bzip2; name=v8.tar.bz2; x-unix-mode=0644Download
#89Bossart, Nathan
bossartn@amazon.com
In reply to: Mark Dilger (#88)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On 9/27/21, 11:16 AM, "Mark Dilger" <mark.dilger@enterprisedb.com> wrote:

On Sep 21, 2021, at 12:58 PM, Andrew Dunstan <andrew@dunslane.net> wrote:

I do like the basic thrust of reducing the power of CREATEROLE. There's
an old legal maxim I learned in my distant youth that says "nemo dat
quod non habet" - Nobody can give something they don't own. This seems
to be in that spirit, and I approve :-)

Great! I'm glad to hear the approach has some support.

I'd also like to voice my support for this effort. I haven't been
following this thread too closely, but I did take a gander at the
latest patch set. There is a lot to unpack here. I think this could
easily be split into 3 or 4 threads.

The changes for adding GUC management roles seem pretty
straightforward and would likely be helpful for service providers.
However, I was kind of surprised that membership to such roles also
provided access to ALTER SYSTEM SET. IMO there's quite a big
difference between allowing a user to set a GUC per-session versus
cluster-wide. With these patches, if I just want to allow a user to
set a GUC like temp_file_limit or log_statement, I also have to give
them the ability to change it (and several other GUCs) for all roles
on the system.

I haven't spent too much time looking at the event trigger and logical
replication changes yet.

For the CREATEROLE changes, the main thing on my mind is how this
might impact upgrades. IIUC roles with CREATEROLE will lose many
privileges after pg_upgrade. I think one way to deal with this would
be to have such upgrades grant all the privileges they are losing, but
most CREATEROLE roles likely aren't using the full extent of their
powers, so that approach may be a little extreme. Perhaps it is okay
to just add a blurb in the release notes about this backwards-
incompatible change.

Another interesting thing I found is that if a role has ownership of
a role that later obtains SUPERUSER, the owning role basically loses
all control of the role. It makes sense to avoid letting non-
superusers mess with superusers, but this led me to wonder if there
should be a mechanism for transferring role ownership (e.g., ALTER
ROLE or REASSIGNED OWNED BY). Presently, REASSIGNED OWNED BY fails
with an "unexpected classid" ERROR. Such functionality might also
come in handy for the pg_dump changes for maintaining role ownership.

Nathan

#90Stephen Frost
sfrost@snowman.net
In reply to: Bossart, Nathan (#89)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Bossart, Nathan (bossartn@amazon.com) wrote:

On 9/27/21, 11:16 AM, "Mark Dilger" <mark.dilger@enterprisedb.com> wrote:

On Sep 21, 2021, at 12:58 PM, Andrew Dunstan <andrew@dunslane.net> wrote:

I do like the basic thrust of reducing the power of CREATEROLE. There's
an old legal maxim I learned in my distant youth that says "nemo dat
quod non habet" - Nobody can give something they don't own. This seems
to be in that spirit, and I approve :-)

Great! I'm glad to hear the approach has some support.

I'd also like to voice my support for this effort. I haven't been
following this thread too closely, but I did take a gander at the
latest patch set. There is a lot to unpack here. I think this could
easily be split into 3 or 4 threads.

I tend to agree. I'm also generally supportive but following everything
that's going on in this particular patch set isn't easy.

For the CREATEROLE changes, the main thing on my mind is how this
might impact upgrades. IIUC roles with CREATEROLE will lose many
privileges after pg_upgrade. I think one way to deal with this would
be to have such upgrades grant all the privileges they are losing, but
most CREATEROLE roles likely aren't using the full extent of their
powers, so that approach may be a little extreme. Perhaps it is okay
to just add a blurb in the release notes about this backwards-
incompatible change.

This is definitely a pretty big change. There needs to be a bigger and
independent discussion about the general concept of role 'self
administration' as we talk about it in the comments of the role system
and which this doesn't really address too. I've been planning for a
while to start a specific thread about that and I'll try to do that so
that we can discuss that specifically, as it's quite relevant to all of
this, in my view.

Another interesting thing I found is that if a role has ownership of
a role that later obtains SUPERUSER, the owning role basically loses
all control of the role. It makes sense to avoid letting non-
superusers mess with superusers, but this led me to wonder if there
should be a mechanism for transferring role ownership (e.g., ALTER
ROLE or REASSIGNED OWNED BY). Presently, REASSIGNED OWNED BY fails
with an "unexpected classid" ERROR. Such functionality might also
come in handy for the pg_dump changes for maintaining role ownership.

I really think we need to stop addressing roles explicitly as
'superuser' vs. 'non-superuser', because a non-superuser role can be
GRANT'd a superuser role, which makes that distinction really not
sensible. This has continued to be a problem and we need to cleanly
address it. Not sure exactly how to do that today but it's certainly an
issue.

Thanks,

Stephen

#91Bossart, Nathan
bossartn@amazon.com
In reply to: Stephen Frost (#90)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On 10/4/21, 7:08 PM, "Stephen Frost" <sfrost@snowman.net> wrote:

I really think we need to stop addressing roles explicitly as
'superuser' vs. 'non-superuser', because a non-superuser role can be
GRANT'd a superuser role, which makes that distinction really not
sensible. This has continued to be a problem and we need to cleanly
address it. Not sure exactly how to do that today but it's certainly an
issue.

Agreed. Maybe one option is to convert most of the role attributes to
be predefined roles. Then we could just check for membership in
pg_superuser instead of trying to deal with membership in roles that
have the SUPERUSER attribute.

Nathan

#92Bharath Rupireddy
bharath.rupireddyforpostgres@gmail.com
In reply to: Mark Dilger (#88)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Sep 27, 2021 at 11:45 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

Thanks for looking! I have pulled together a new patch set which applies cleanly against current master.

Hi Mark, thanks for this work. I'm late to be here in this thread,
please note that I didn't go through the entire thread as it is quite
long for me to read.

I have a question: it looks like the view pg_backend_memory_contexts
and the function pg_log_backend_memory_contexts are superuser only.
Isn't it a good idea to allow users with a pg_monitor or some other
similar role to use these as well? This question may be unrelated here
but I'm curious to know whether your patch set has a solution.

Regards,
Bharath Rupireddy.

#93Robert Haas
robertmhaas@gmail.com
In reply to: Bossart, Nathan (#89)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Oct 4, 2021 at 8:22 PM Bossart, Nathan <bossartn@amazon.com> wrote:

The changes for adding GUC management roles seem pretty
straightforward and would likely be helpful for service providers.
However, I was kind of surprised that membership to such roles also
provided access to ALTER SYSTEM SET. IMO there's quite a big
difference between allowing a user to set a GUC per-session versus
cluster-wide. With these patches, if I just want to allow a user to
set a GUC like temp_file_limit or log_statement, I also have to give
them the ability to change it (and several other GUCs) for all roles
on the system.

There's also ALTER ROLE and ALTER DATABASE, which provide more ways to
set GUCs. I agree that we could choose make distinctions here, but I
think if we make too many distinctions, it will become complicated to
administer. And if we don't have *any* way to delegate ALTER SYSTEM,
then I think we have missed the mark.

--
Robert Haas
EDB: http://www.enterprisedb.com

#94Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Bharath Rupireddy (#92)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Oct 6, 2021, at 10:48 PM, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote:

Hi Mark, thanks for this work. I'm late to be here in this thread,
please note that I didn't go through the entire thread as it is quite
long for me to read.

Thanks for joining.

I have a question: it looks like the view pg_backend_memory_contexts
and the function pg_log_backend_memory_contexts are superuser only.
Isn't it a good idea to allow users with a pg_monitor or some other
similar role to use these as well? This question may be unrelated here
but I'm curious to know whether your patch set has a solution.

Possibly, but I have stopped adding new topics to this particular patch set, as I'm already getting requests to break it into separate sets and email threads.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#95Bharath Rupireddy
bharath.rupireddyforpostgres@gmail.com
In reply to: Mark Dilger (#94)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, Oct 7, 2021 at 10:29 PM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:

I have a question: it looks like the view pg_backend_memory_contexts
and the function pg_log_backend_memory_contexts are superuser only.
Isn't it a good idea to allow users with a pg_monitor or some other
similar role to use these as well? This question may be unrelated here
but I'm curious to know whether your patch set has a solution.

Possibly, but I have stopped adding new topics to this particular patch set, as I'm already getting requests to break it into separate sets and email threads.

Thanks Mark. I will discuss it in a separate thread.

Regards,
Bharath Rupireddy.

#96Ronan Dunklau
ronan.dunklau@aiven.io
In reply to: Mark Dilger (#88)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Le lundi 27 septembre 2021, 20:15:05 CEST Mark Dilger a écrit :

On Sep 21, 2021, at 12:58 PM, Andrew Dunstan <andrew@dunslane.net> wrote:

This patch set is failing to apply for me - it fails on patch 2.

Thanks for looking! I have pulled together a new patch set which applies
cleanly against current master.

I haven't dug terribly deeply into it yet, but I notice that there is a
very large increase in test volume, which appears to account for much of
the 44635 lines of the patch set. I think we're probably going to want
to reduce that. We've had complaints in the past from prominent hackers
about adding too much volume to the regression tests.

The v8 patch set is much smaller, with the reduction being in the size of
regression tests covering which roles can perform SET, RESET, ALTER SYSTEM
SET, and ALTER SYSTEM RESET and on which GUCs. The v7 patch set did
exhaustive testing on this, which is why it was so big. The v8 set does
just a sampling of GUCs per role. The total number of lines for the patch
set drops from 44635 to 13026, with only 1960 lines total between the .sql
and .out tests of GUC privileges.

I do like the basic thrust of reducing the power of CREATEROLE. There's
an old legal maxim I learned in my distant youth that says "nemo dat
quod non habet" - Nobody can give something they don't own. This seems
to be in that spirit, and I approve :-)

Great! I'm glad to hear the approach has some support.

Other changes in v8:

Add a new test for subscriptions owned by non-superusers to verify that the
tablesync and apply workers replicating their subscription won't replicate
into schemas and tables that the subscription owner lacks privilege to
touch. The logic to prevent that existed in the v7 patch, but I overlooked
adding tests for it. Fixed.

Allow non-superusers to create event triggers. The logic already existed
and is unchanged to handle event triggers owned by non-superusers and
conditioning those triggers firing on the (trigger-owner,
role-performing-event) pair. The v7 patch set didn't go quite so far as
allowing non-superusers to create event triggers, but that undercuts much
of the benefit of the changes for no obvious purpose.

Not changed in v8, but worth discussing:

Non-superusers are still prohibited from creating subscriptions, despite
improvements to the security around that circumstance. Improvements to the
security model around event triggers does not have to also include
permission for non-superuser to create event triggers, but v8 does both.
These could be viewed as inconsistent choices, but I struck the balance
this way because roles creating event triggers does not entail them doing
anything that they can't already do, whereas allowing arbitrary users to
create subscriptions would entail an ordinary user causing external network
connections being initiated. We likely need to create another privileged
role and require a non-superuser to be part of that role before they can
create subscriptions. That seems, however, like something to do as a
follow-on patch, since tightening up the security on subscriptions as done
in this patch doesn't depend on that.

The changes proposed around subscription management make a lot of sense,
especially considering that now that we don't allow to run ALTER SUBSCRIPTION
REFRESH in a function anymore, there is no way to delegate this to a non
superuser (using a security definer function). Since it doesn't involve the
rest of the patchset, patches 16, 17 and 18 could be separated in another
thread / patchset.

--
Ronan Dunklau

#97Jeff Davis
pgsql@j-davis.com
In reply to: Mark Dilger (#88)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, 2021-09-27 at 11:15 -0700, Mark Dilger wrote:

Allow non-superusers to create event triggers. The logic already
existed and is unchanged to handle event triggers owned by non-
superusers and conditioning those triggers firing on the (trigger-
owner, role-performing-event) pair. The v7 patch set didn't go quite
so far as allowing non-superusers to create event triggers, but that
undercuts much of the benefit of the changes for no obvious purpose.

The thread on role self-administration seems like a dependency here.
And it doesn't look like there's consensus that we should be
conditioning event trigger firing on role membership:

/messages/by-id/20211005043438.GB314685@rfd.leadboat.com

Instead, how about:

* make a predefined role pg_event_trigger that allows creating event
triggers
* make it an error for a superuser to fire an event trigger created by
a non-superuser

It doesn't solve the problem hierarchically, but we don't solve other
predefined role privileges hierarchically, either (and for many of them
it makes no sense).

A downside is that the privileged event trigger creator could
accidentally make life annoying for a superuser that's trying to issue
DDL: the superuser would need to disable the event trigger, perform the
action, then re-enable it. But that shouldn't be a practical problem in
sane setups -- superusers shouldn't be performing a lot of DDL, and if
they are, it's good to be explicit that they are bypassing something
configured by their pseudo-admin.

Regards,
Jeff Davis

#98Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Jeff Davis (#97)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Oct 19, 2021, at 12:28 PM, Jeff Davis <pgsql@j-davis.com> wrote:

On Mon, 2021-09-27 at 11:15 -0700, Mark Dilger wrote:

Allow non-superusers to create event triggers. The logic already
existed and is unchanged to handle event triggers owned by non-
superusers and conditioning those triggers firing on the (trigger-
owner, role-performing-event) pair. The v7 patch set didn't go quite
so far as allowing non-superusers to create event triggers, but that
undercuts much of the benefit of the changes for no obvious purpose.

The thread on role self-administration seems like a dependency here.
And it doesn't look like there's consensus that we should be
conditioning event trigger firing on role membership:

/messages/by-id/20211005043438.GB314685@rfd.leadboat.com

I have noticed the lack of consensus. The resistance to having roles own other roles should get more attention, I think.

Stephen and I went into the weeds on what DROP ROLE rolename CASCADE should mean, but I don't think that should hold up the idea of role ownership. He wanted a different command to do the work rather than this command, but I don't see anything in what he wrote to suggest that the idea is unacceptable, only a different preference on how that functionality gets spelled.

There was also some difference in interpretation on what exact differences there are between "ownership" and "dependency". To me, "ownership" is a subtype of dependency, just as "is indexed by" and "is contained in" are subtypes of dependency. Indexes are dependent on the tables they index, tables are dependent on schemas that contain them, objects are dependent on roles that own them, and so forth. Stephen seemed to have a different view. I'm not at all clear on whether his different view is a showstopper.

Before redesigning the way we fix up event triggers for v15, I'd like to have a sense of how contentious all this is. If it's just a matter of definitions and command spellings, we can work around it.

Thanks for participating in this thread, BTW.

Instead, how about:

* make a predefined role pg_event_trigger that allows creating event
triggers
* make it an error for a superuser to fire an event trigger created by
a non-superuser

I think blocking superuser actions is a non-starter, but you address that below....

It doesn't solve the problem hierarchically, but we don't solve other
predefined role privileges hierarchically, either (and for many of them
it makes no sense).

A downside is that the privileged event trigger creator could
accidentally make life annoying for a superuser that's trying to issue
DDL: the superuser would need to disable the event trigger, perform the
action, then re-enable it. But that shouldn't be a practical problem in
sane setups -- superusers shouldn't be performing a lot of DDL, and if
they are, it's good to be explicit that they are bypassing something
configured by their pseudo-admin.

I'd prefer not to assume much about the sanity of the setup, and I agree the superuser should be able to unconditionally disable the offending event trigger, but I think it is a pretty poor solution that a superuser would need to disable and then re-enable a trigger. Other commands in other sessions would be able to sneak through during the window of time when the trigger is disabled. Wouldn't it be much cleaner to have superuser bypass the trigger?


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#99Jeff Davis
pgsql@j-davis.com
In reply to: Mark Dilger (#98)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Tue, 2021-10-19 at 13:17 -0700, Mark Dilger wrote:

Wouldn't it be much cleaner to have superuser bypass the trigger?

Maybe it could be a user property like "BYPASS_EVENT_TRIGGERS", and
only superusers could adjust it (like the SUPERUSER and REPLICATION
properties).

I suppose it would default to BYPASS_EVENT_TRIGGERS for superusers and
not for non-superusers. A little awkward to have different defaults,
but it seems sensible in this case.

Would this bypass all event triggers, or only the event triggers of
another user?

Regards,
Jeff Davis

#100Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Jeff Davis (#99)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Oct 19, 2021, at 3:18 PM, Jeff Davis <pgsql@j-davis.com> wrote:

On Tue, 2021-10-19 at 13:17 -0700, Mark Dilger wrote:

Wouldn't it be much cleaner to have superuser bypass the trigger?

Maybe it could be a user property like "BYPASS_EVENT_TRIGGERS", and
only superusers could adjust it (like the SUPERUSER and REPLICATION
properties).

I suppose it would default to BYPASS_EVENT_TRIGGERS for superusers and
not for non-superusers. A little awkward to have different defaults,
but it seems sensible in this case.

Would this bypass all event triggers, or only the event triggers of
another user?

The difficulty is that non-superuser owned event triggers could be something of a minefield for scripts run as superuser. The cleanest way around that would be to have them never fire in response to superuser actions. Installations could still have event triggers that cover all users, including superusers, as long as they have those triggers owned by superuser.

The implementation in the patch set does this, but with finer grained precision, because the universe of roles is divided into more than just superuser vs. non-superuser.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#101Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#100)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

On Tue, Oct 19, 2021 at 18:26 Mark Dilger <mark.dilger@enterprisedb.com>
wrote:

On Oct 19, 2021, at 3:18 PM, Jeff Davis <pgsql@j-davis.com> wrote:

On Tue, 2021-10-19 at 13:17 -0700, Mark Dilger wrote:

Wouldn't it be much cleaner to have superuser bypass the trigger?

Maybe it could be a user property like "BYPASS_EVENT_TRIGGERS", and
only superusers could adjust it (like the SUPERUSER and REPLICATION
properties).

I suppose it would default to BYPASS_EVENT_TRIGGERS for superusers and
not for non-superusers. A little awkward to have different defaults,
but it seems sensible in this case.

Would this bypass all event triggers, or only the event triggers of
another user?

The difficulty is that non-superuser owned event triggers could be
something of a minefield for scripts run as superuser. The cleanest way
around that would be to have them never fire in response to superuser
actions. Installations could still have event triggers that cover all
users, including superusers, as long as they have those triggers owned by
superuser.

The implementation in the patch set does this, but with finer grained
precision, because the universe of roles is divided into more than just
superuser vs. non-superuser.

This last point is particularly important. Non-super users may be able to
become superuser and those roles which are able to need to also be
protected. Only protecting superuser roles themselves is *not* enough.

Thanks,

Stephen

Show quoted text
#102Jeff Davis
pgsql@j-davis.com
In reply to: Stephen Frost (#101)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Tue, 2021-10-19 at 18:52 -0400, Stephen Frost wrote:

The implementation in the patch set does this, but with finer
grained precision, because the universe of roles is divided into
more than just superuser vs. non-superuser.

This last point is particularly important. Non-super users may be
able to become superuser and those roles which are able to need to
also be protected. Only protecting superuser roles themselves is
*not* enough.

I'm trying to suggest an approach that is flexible enough (not limited
to superusers), but also addresses Noah's complaint that ordinary role
membership should not implicitly control event trigger firing.

The most direct way to address Noah's complaint is to make a new
explicit user option BYPASS_EVENT_TRIGGERS, which controls whether
event triggers fire or not.

To create an event trigger, a user would still need to be a member of
predefined role pg_create_event_trigger, which would still be a highly
privileged user that can essentially take over any user without
BYPASS_EVENT_TRIGGER. In practice, the members of
pg_create_event_trigger would be pseudo-superusers, or highly-
privileged roles that come along with a C extension that needs event
triggers.

Details:
* Event triggers created by a superuser would never be bypassed.
* Superusers would always bypass event triggers unless the event
trigger is owned by another superuser.
* If a role is highly privileged and/or can become superuser, it
should have BYPASS_EVENT_TRIGGERS specified so that members of
pg_create_event_trigger can't escalate to that role.
* Normal users should not have BYPASS_EVENT_TRIGGERS.

Another benefit of this is that it makes this event trigger change
independent of the Role Self-Administration discussion, so it could
potentially be committed sooner.

A downside is that with my suggestion, event triggers would still be
for the highly-privileged roles only. Allowing unprivileged users to
create event triggers that have limited scope might allow some really
interesting use cases. There might be some options here, like allowing
any user to create an event trigger that only affects that user.

Regards,
Jeff Davis

(Aside: I'm not really sure where the line is between adding a
predefined role and adding a user option. Are user options just the old
way, and predefined roles the new way?)

#103Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Jeff Davis (#102)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Oct 20, 2021, at 10:20 AM, Jeff Davis <pgsql@j-davis.com> wrote:

I'm trying to suggest an approach that is flexible enough (not limited
to superusers), but also addresses Noah's complaint that ordinary role
membership should not implicitly control event trigger firing.

The most direct way to address Noah's complaint is to make a new
explicit user option BYPASS_EVENT_TRIGGERS, which controls whether
event triggers fire or not.

I'd like to have a much clearer understanding of Noah's complaint first. There are multiple things to consider: (1) the role which owns the trigger, (2) the role which is performing an action which would cause the trigger to fire, (3) the set of roles role #1 belongs to, (4) the set of roles role #1 has ADMIN privilege on, (5) the set of roles that role #2 belongs to, and (6) the set of roles that role #2 has ADMIN privilege on. Maybe more?

And that's before we even get into having roles own other roles, which the event trigger patches *do not depend on*. In the patch set associated with this thread, the event trigger stuff is in patches 0014 and 0015. The changes to CREATEROLE and role ownership are not until patches 0019, 0020, and 0021. (I'm presently writing another set of emails to split this all into four threads/patch sets.)

I'd like to know precisely which combinations of these six things are objectionable, and why. There may be a way around the objections without needing to create new user options or new privileged roles.

Another benefit of this is that it makes this event trigger change
independent of the Role Self-Administration discussion, so it could
potentially be committed sooner.

I don't think the two are related, though I can understand the confusion. That is, in fact, a small part of why I'm splitting the patches into different email threads.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#104Jeff Davis
pgsql@j-davis.com
In reply to: Mark Dilger (#103)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Wed, 2021-10-20 at 10:32 -0700, Mark Dilger wrote:

I'd like to have a much clearer understanding of Noah's complaint
first. There are multiple things to consider: (1) the role which
owns the trigger, (2) the role which is performing an action which
would cause the trigger to fire, (3) the set of roles role #1 belongs
to, (4) the set of roles role #1 has ADMIN privilege on, (5) the set
of roles that role #2 belongs to, and (6) the set of roles that role
#2 has ADMIN privilege on. Maybe more?

And that's before we even get into having roles own other roles,
which the event trigger patches *do not depend on*. In the patch set
associated with this thread, the event trigger stuff is in patches
0014 and 0015. The changes to CREATEROLE and role ownership are not
until patches 0019, 0020, and 0021. (I'm presently writing another
set of emails to split this all into four threads/patch sets.)

I'd like to know precisely which combinations of these six things are
objectionable, and why. There may be a way around the objections
without needing to create new user options or new privileged roles.

I can't speak for Noah, but my interpretation is that it would be
surprising if GRANT/REVOKE or membership in an ordinary role had
effects other than "permission denied" errors. It might make sense for
event trigger firing in all the cases we can think of, but it would
certainly be strange if we started accumulating a collection of
behaviors that implicitly change when you move in or out of a role.

That's pretty general, so to answer your question: it seems like a
problem to use #3-6 in the calculation about whether to fire an event
trigger.

However, if we have a concept of role *ownership*, that's something
new. It may be less surprising to use that to determine additional
behaviors, like whether event triggers fire.

We can also consider adding some additional language to the CREATE
EVENT TRIGGER syntax to make it more explicit what the scope is. For
instance:

CREATE EVENT TRIGGER name
ON event
[ FOR {ALL|OWNED} ROLES ]
[ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
EXECUTE { FUNCTION | PROCEDURE } function_name()

For a superuser ALL and OWNED would be the same, but regular users
would need to specify "FOR OWNED ROLES" or they'd get an error.

Regards,
Jeff Davis

#105Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Ronan Dunklau (#96)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

I have now received multiple requests to split this patchset into multiple parts, including some off-list. I'll be posting four new patch sets on four new topics:

New privileged roles which can SET and ALTER SYSTEM SET (v8-0002 through v8-0013)

Non-superuser event trigger owners (v8-0014 and v8-0015)

Non-superuser subscription owners (v8-0016 through v8-0018)

CREATEROLE and role ownership hierarchies (v8-0001 and v8-0019 through v8-0021)

I cannot presume everyone will be interested, so I will only cc'd Andrew on the new threads, given his status as a reviewer. I don't mean by this to cut anyone out of the discussion.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#106Jeff Davis
pgsql@j-davis.com
In reply to: Noah Misch (#31)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, 2021-05-27 at 23:06 -0700, Noah Misch wrote:

pg_logical_replication would not be safe to delegate that way:

/messages/by-id/flat/CACqFVBbx6PDq+=vHM0n78kHzn8tvOM-kGO_2q_q0zNAMT+TzdA@mail.gmail.com

What do you mean "that way"? Do you mean it's not safe to delegate
subscription creation to non-superusers at all?

From the thread above, I don't see anything so dangerous that it can't
be delegated:

* persistent background workers on subscriber
- still seems reasonable to delegate to a privileged user
* arbitrary code execution by the apply worker on subscriber
- apply worker runs as subscription owner, so doesn't seem
like a problem?
* connection info may be visible to non-superusers
- seems either solvable or not necessarily a problem

Regards,
Jeff Davis

#107Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#102)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Wed, Oct 20, 2021 at 1:20 PM Jeff Davis <pgsql@j-davis.com> wrote:

A downside is that with my suggestion, event triggers would still be
for the highly-privileged roles only. Allowing unprivileged users to
create event triggers that have limited scope might allow some really
interesting use cases. There might be some options here, like allowing
any user to create an event trigger that only affects that user.

I think that's basically giving up the important part of this idea,
which is to allow meaningful administration without superuser
privileges. "highly-privileged roles only" sounds like in practice it
would amount to the superuser or someone who can become the superuser
-- and thus probably wouldn't include the "master tenant" role in a
service provider environment.

I don't really see what the problem is with Tom's proposal[1,2], or
why the role self-administration thread is necessarily a blocker. It's
true that if X creates an event trigger and it fires for Y because X
can become Y, then Y might be able to revoke membership in Y from X
and thus circumvent the event trigger firing. But that is a severable
problem. We can fail to solve that problem and still be better off
than today, because at least with the proposed change a cooperating
group of users (or one whose ability to execute GRANT and REVOKE is
restricted by some other means) can benefit from event triggers
without any of them being superuser. If we make this change *and also*
resolve the role self-administration problem, then it can also work in
cases where a more privileged user needs to enforce event trigger
firing against a less-privileged user.

--
Robert Haas
EDB: http://www.enterprisedb.com

[1]: /messages/by-id/214052.1627331086@sss.pgh.pa.us
[2]: /messages/by-id/216038.1627333077@sss.pgh.pa.us

#108Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#107)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

On Wed, Oct 20, 2021 at 16:23 Robert Haas <robertmhaas@gmail.com> wrote:

On Wed, Oct 20, 2021 at 1:20 PM Jeff Davis <pgsql@j-davis.com> wrote:

A downside is that with my suggestion, event triggers would still be
for the highly-privileged roles only. Allowing unprivileged users to
create event triggers that have limited scope might allow some really
interesting use cases. There might be some options here, like allowing
any user to create an event trigger that only affects that user.

I think that's basically giving up the important part of this idea,
which is to allow meaningful administration without superuser
privileges. "highly-privileged roles only" sounds like in practice it
would amount to the superuser or someone who can become the superuser
-- and thus probably wouldn't include the "master tenant" role in a
service provider environment.

I’m in agreement with Robert on this point.

I don't really see what the problem is with Tom's proposal[1,2], or

why the role self-administration thread is necessarily a blocker. It's
true that if X creates an event trigger and it fires for Y because X
can become Y, then Y might be able to revoke membership in Y from X
and thus circumvent the event trigger firing. But that is a severable
problem. We can fail to solve that problem and still be better off
than today, because at least with the proposed change a cooperating
group of users (or one whose ability to execute GRANT and REVOKE is
restricted by some other means) can benefit from event triggers
without any of them being superuser. If we make this change *and also*
resolve the role self-administration problem, then it can also work in
cases where a more privileged user needs to enforce event trigger
firing against a less-privileged user.

I’m not thrilled with the idea of putting this out there without addressing
the risk that a role could circumvent it.

I did want to say that the idea put forward by Jeff of being able to
specify a set of users which an event trigger should fire for is an
interesting and potentially quite useful capability. Perhaps I don’t want a
given event trigger to fire for ALL of the roles which I have admin rights
(or ownership or whatever) over but rather some subset. Now, perhaps I
could create a role for that purpose, but also, maybe I haven’t been given
that right for $reasons. Being able to specify the roles for which an
event trigger fires would be useful in such cases- and now we are down to
just working out who is allowed to create event triggers to operate upon
whom. Admin rights on the role could certainly be one way of addressing
that, or we could have that be “ownership”, or it could potentially be an
explicitly GRANT’able ability on a role, similar to what “admin” is today.

I have to say that the last of those options strikes me as particularly
appealing and potentially something which could be extended (what about
setting GUCs for a particular role? Or maybe some subset of GUCs? Or
privilege to change/reset a password, or other things?).

I don’t think this information would be stored in the same manner as the
per-object GRANT system that we have today and by avoiding that perhaps we
can a more extensible method that hasn’t got us worrying about having
enough bits too.

Thanks,

Stephen

#109Jeff Davis
pgsql@j-davis.com
In reply to: Stephen Frost (#108)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Wed, 2021-10-20 at 16:36 -0400, Stephen Frost wrote:

I think that's basically giving up the important part of this idea,
which is to allow meaningful administration without superuser
privileges. "highly-privileged roles only" sounds like in practice
it
would amount to the superuser or someone who can become the
superuser
-- and thus probably wouldn't include the "master tenant" role in a
service provider environment.

I’m in agreement with Robert on this point.

I'm OK to move past this and continue with Mark's approach.

Noah made the original complaint, though, so he might have something to
add.

Regards,
Jeff Davis

#110Noah Misch
noah@leadboat.com
In reply to: Jeff Davis (#106)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Wed, Oct 20, 2021 at 11:27:11AM -0700, Jeff Davis wrote:

On Wed, 2021-10-20 at 10:32 -0700, Mark Dilger wrote:

I'd like to have a much clearer understanding of Noah's complaint
first. There are multiple things to consider: (1) the role which
owns the trigger, (2) the role which is performing an action which
would cause the trigger to fire, (3) the set of roles role #1 belongs
to, (4) the set of roles role #1 has ADMIN privilege on, (5) the set
of roles that role #2 belongs to, and (6) the set of roles that role
#2 has ADMIN privilege on. Maybe more?

I'd like to know precisely which combinations of these six things are
objectionable, and why. There may be a way around the objections
without needing to create new user options or new privileged roles.

I can't speak for Noah, but my interpretation is that it would be
surprising if GRANT/REVOKE or membership in an ordinary role had
effects other than "permission denied" errors. It might make sense for
event trigger firing in all the cases we can think of, but it would
certainly be strange if we started accumulating a collection of
behaviors that implicitly change when you move in or out of a role.

That's pretty general, so to answer your question: it seems like a
problem to use #3-6 in the calculation about whether to fire an event
trigger.

Exactly. That's the main point. Also, it's currently a best practice for
only non-LOGIN roles to have members. The proposed approach invites folks to
abandon that best practice. I take the two smells as a sign that we'll regret
adopting the proposal, despite not knowing how it will go seriously wrong.

On Wed, Oct 20, 2021 at 12:09:08PM -0700, Jeff Davis wrote:

On Thu, 2021-05-27 at 23:06 -0700, Noah Misch wrote:

pg_logical_replication would not be safe to delegate that way:

/messages/by-id/flat/CACqFVBbx6PDq+=vHM0n78kHzn8tvOM-kGO_2q_q0zNAMT+TzdA@mail.gmail.com

What do you mean "that way"? Do you mean it's not safe to delegate
subscription creation to non-superusers at all?

I meant "pg_logical_replication would not be safe to delegate to the tenant of
a database provided as a service." It's not safe today, but it can be made
safe:

From the thread above, I don't see anything so dangerous that it can't
be delegated:

* persistent background workers on subscriber
- still seems reasonable to delegate to a privileged user

Agreed, I don't have a problem with pg_logical_replication implying that
ability. If you can create this worker, you can bypass ADMIN OPTION by
running the GRANT/REVOKE inside a subscription. That's probably fine if
documented, or else is_admin_of_role() could prevent it.

* arbitrary code execution by the apply worker on subscriber
- apply worker runs as subscription owner, so doesn't seem
like a problem?

Sounds right. I think Mark Dilger drafted a patch to add ACL checks and a TAP
test confirming that the worker does get permission denied. That change has
no disadvantage, so this problem is on the way to getting solved.

* connection info may be visible to non-superusers
- seems either solvable or not necessarily a problem

Yes.

The other matter from the thread you linked is "the connection to the
publisher must enforce the equivalent of dblink_security_check()". I think
Mark Dilger drafted a patch for that, too.

#111Stephen Frost
sfrost@snowman.net
In reply to: Noah Misch (#110)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Noah Misch (noah@leadboat.com) wrote:

On Wed, Oct 20, 2021 at 11:27:11AM -0700, Jeff Davis wrote:

On Wed, 2021-10-20 at 10:32 -0700, Mark Dilger wrote:

I'd like to have a much clearer understanding of Noah's complaint
first. There are multiple things to consider: (1) the role which
owns the trigger, (2) the role which is performing an action which
would cause the trigger to fire, (3) the set of roles role #1 belongs
to, (4) the set of roles role #1 has ADMIN privilege on, (5) the set
of roles that role #2 belongs to, and (6) the set of roles that role
#2 has ADMIN privilege on. Maybe more?

I'd like to know precisely which combinations of these six things are
objectionable, and why. There may be a way around the objections
without needing to create new user options or new privileged roles.

I can't speak for Noah, but my interpretation is that it would be
surprising if GRANT/REVOKE or membership in an ordinary role had
effects other than "permission denied" errors. It might make sense for
event trigger firing in all the cases we can think of, but it would
certainly be strange if we started accumulating a collection of
behaviors that implicitly change when you move in or out of a role.

That's pretty general, so to answer your question: it seems like a
problem to use #3-6 in the calculation about whether to fire an event
trigger.

Exactly. That's the main point. Also, it's currently a best practice for
only non-LOGIN roles to have members. The proposed approach invites folks to
abandon that best practice. I take the two smells as a sign that we'll regret
adopting the proposal, despite not knowing how it will go seriously wrong.

This seems like a pretty good point, which leads me to again think that
we should explicitly add a way for an individual who can create event
triggers to be able to specify for whom the event trigger should fire,
and only allow them to specify roles other than their own provided they
have been given that authority (either explicitly somehow or implicitly
based on some defined access that they have to that other role).

Thanks,

Stephen

#112Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#111)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Oct 25, 2021 at 12:20 PM Stephen Frost <sfrost@snowman.net> wrote:

Exactly. That's the main point. Also, it's currently a best practice for
only non-LOGIN roles to have members. The proposed approach invites folks to
abandon that best practice. I take the two smells as a sign that we'll regret
adopting the proposal, despite not knowing how it will go seriously wrong.

This seems like a pretty good point, which leads me to again think that
we should explicitly add a way for an individual who can create event
triggers to be able to specify for whom the event trigger should fire,
and only allow them to specify roles other than their own provided they
have been given that authority (either explicitly somehow or implicitly
based on some defined access that they have to that other role).

I agree that Noah has a reasonably good point here. I don't think it's
a total slam-dunk but it it's certainly not a stupid argument.
Conceding that point for the purposes of discussion, I don't
understand how this kind of proposal gets us out from under the
problem. Surely, it can't be the case that user X can cause event
trigger E to run as user Y unless X can become Y, because to do so
would allow X to usurp Y's privileges, except in the corner case where
Y never does anything that can trigger an event trigger. But if X has
to be able to become Y in order to force E to be run by Y, then I
think we've made no progress in addressing Noah's complaint.

--
Robert Haas
EDB: http://www.enterprisedb.com

#113Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#112)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Robert Haas (robertmhaas@gmail.com) wrote:

On Mon, Oct 25, 2021 at 12:20 PM Stephen Frost <sfrost@snowman.net> wrote:

Exactly. That's the main point. Also, it's currently a best practice for
only non-LOGIN roles to have members. The proposed approach invites folks to
abandon that best practice. I take the two smells as a sign that we'll regret
adopting the proposal, despite not knowing how it will go seriously wrong.

This seems like a pretty good point, which leads me to again think that
we should explicitly add a way for an individual who can create event
triggers to be able to specify for whom the event trigger should fire,
and only allow them to specify roles other than their own provided they
have been given that authority (either explicitly somehow or implicitly
based on some defined access that they have to that other role).

I agree that Noah has a reasonably good point here. I don't think it's
a total slam-dunk but it it's certainly not a stupid argument.

Ok.

Conceding that point for the purposes of discussion, I don't
understand how this kind of proposal gets us out from under the
problem. Surely, it can't be the case that user X can cause event
trigger E to run as user Y unless X can become Y, because to do so
would allow X to usurp Y's privileges, except in the corner case where
Y never does anything that can trigger an event trigger. But if X has
to be able to become Y in order to force E to be run by Y, then I
think we've made no progress in addressing Noah's complaint.

X having rights over Y is what would allow X to create an event trigger
which fires when Y does $something, but the act of GRANT'ing Y to X
wouldn't make it automatically start happening. The latter is what I
believed Noah's concern was around.

The downside there though is that GRANT'ing of roles to other roles is
how we build up sets of roles and you'd certainly wish to be able to
leverage that when deciding which roles a given event trigger should
fire for. If we made that work for event triggers then you'd still have
the case that *some* GRANT A to B would cause event triggers to suddenly
start happening for B without other actions being taken. Still, in that
case you could create specific such roles to manage that independently
of which roles happened to have admin rights over which other roles.

Examples might help here.

CREATE ROLE X;
CREATE ROLE Y;
CREATE ROLE Z;

GRANT Y to X;
GRANT Z to X;

SET ROLE X;
CREATE EVENT TRIGGER do_stuff();

Under one approach, that event trigger then fires for X, Y and Z. What
if you don't actually want it to though? What if some role Q is later
created and GRANT'd to X? Then the event trigger would also fire for
them.

Consider instead:

CREATE ROLE X;
CREATE ROLE Y;
CREATE ROLE Z;

GRANT Y to X;
GRANT Z to X;

SET ROLE X;
CREATE EVENT TRIGGER FOR Y do_stuff();

Now, X has explicitly said that they want the event trigger to fire for
role Y and if the event trigger fires or not is no longer based on
membership in the role creating the trigger but instead depends on being
the role which the event trigger was explicitly defined to fire on.

Does membership in role Y cause the event trigger to fire for that role?
I'd argue that the answer is probably 'yes', but at least it's no longer
tied back to membership in X (the owner of the trigger). That Noah
explicitly mentioned 'login' roles vs. 'non-login' roles makes me think
this is more in line with what the argument was about- the owner of the
trigger would almost certainly be a 'login' role. All that said, this
is definitely a complex area and there's certainly a lot of different
ways we could go.

Thanks,

Stephen

#114Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#113)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Oct 25, 2021 at 2:30 PM Stephen Frost <sfrost@snowman.net> wrote:

Does membership in role Y cause the event trigger to fire for that role?
I'd argue that the answer is probably 'yes', but at least it's no longer
tied back to membership in X (the owner of the trigger). That Noah
explicitly mentioned 'login' roles vs. 'non-login' roles makes me think
this is more in line with what the argument was about- the owner of the
trigger would almost certainly be a 'login' role. All that said, this
is definitely a complex area and there's certainly a lot of different
ways we could go.

I mean I get all this. I am not convinced that it's a big problem,
because it seems a bit hypothetical, but if it is a problem, then
introducing some explicit mechanism to control which triggers fire for
which users is a solution. I'm a bit concerned that it's just going to
make it complicated to configure your event triggers to no real
benefit. Suppose that, as a master tenant, have 10 event triggers and
100 users and all the users are supposed to run all the event
triggers. When I add user #101, if I have to say, yes, I want that
user to fire the same 10 event triggers, running a separate SQL
command for each of one, that's kind of annoying. If I can just create
the new user and I automatically gain membership in that user and it
therefore fires all my event triggers, I get the behavior I wanted
anyway without having to do any special steps.

But also, Noah writes: "Also, it's currently a best practice for only
non-LOGIN roles to have members. The proposed approach invites folks
to abandon that best practice."

The kind of mechanism you're proposing here doesn't seem to make that
any less likely.

--
Robert Haas
EDB: http://www.enterprisedb.com

#115Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#113)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Oct 25, 2021, at 11:30 AM, Stephen Frost <sfrost@snowman.net> wrote:

Consider instead:

CREATE ROLE X;
CREATE ROLE Y;
CREATE ROLE Z;

GRANT Y to X;
GRANT Z to X;

SET ROLE X;
CREATE EVENT TRIGGER FOR Y do_stuff();

Now, X has explicitly said that they want the event trigger to fire for
role Y and if the event trigger fires or not is no longer based on
membership in the role creating the trigger but instead depends on being
the role which the event trigger was explicitly defined to fire on.

I don't think your proposal quite works, because the set of users you'd like to audit with an event trigger based auditing system may be both large and dynamic:

CREATE ROLE batman;
CREATE ROLE robin;

SET ROLE batman;
CREATE ROLE gotham_residents NOLOGIN;
CREATE ROLE riddler IN ROLE gotham_residents LOGIN;
-- create millions of other Gotham residents....
CREATE EVENT TRIGGER FOR gotham_residents audit_criminal_activity();

Batman is not superuser, but he's pretty powerful, and he wants to audit all the criminal activity in Gotham. How should he expect this example to work?

Having the "FOR gotham_residents" clause mean anybody with membership in role gotham_residents is problematic, because it means that being granted into a role both increases and decreases your freedoms, rather than merely giving you more freedoms. If Batman covets privileges that Robin has, but wants not to be subjected to any event triggers that fire for Robin, he both wants into and out of role Robin.

Having "FOR gotham_residents" mean that only actions performed by role "gotham_residents" should fire the trigger is useless, since Gotham residents don't log in as that, but as themselves. Batman won't catch anybody this way.

Having to list each new resident to the trigger is tedious and error-prone. Batman may not be able to pass a compliance audit.

Having Batman *own* all residents in Gotham city would work, if we can agree on a role ownership system. It has the downside that only a role's (direct or indirect) owner can do the auditing, though. That's more flexible than what we have today, where only superuser can do it, but maybe some people would want to argue for a different solution with even more flexibility? A grantable privilege perhaps? But whatever it is, the reasoning about who gets audited and who does not must be clear enough that Batman can pass a compliance audit.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#116Robert Haas
robertmhaas@gmail.com
In reply to: Robert Haas (#114)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Mon, Oct 25, 2021 at 3:25 PM Robert Haas <robertmhaas@gmail.com> wrote:

But also, Noah writes: "Also, it's currently a best practice for only
non-LOGIN roles to have members. The proposed approach invites folks
to abandon that best practice."

The kind of mechanism you're proposing here doesn't seem to make that
any less likely.

OK, I have a new idea. Any system for multi-tenancy necessarily
involves keeping track of the association between users and tenants -
i.e. for any given user, to which tenant do they belong? In Mark's
system, you do that by creating a role, and you make that role the
owner of all of the other roles that are part of that tenant (so that
it can drop them) and you also make it a member of all of those other
roles (so that it can use their privileges).

But the thing that defines a tenant need not be a role. It can be some
other kind of object. Suppose we invent a CREATE TENANT command. Every
user is associated with exactly one tenant, and can optionally be an
administrator for that tenant. If you are the administrator for a
tenant, you can create event triggers that affect every user
associated with that tenant. You also have the privileges of every
user associated with that tenant. If you have the CREATEROLE
privilege, you can create new users who will be associated with the
same tenant as you are, and you can drop existing users that are
associated with that tenant (but not roles associated with other
tenants).

This is effectively the same thing as Mark's proposal, but just using
a new kind of object (TENANT) where Mark used an existing kind of
object (ROLE). And it addresses Noah's concern, perhaps, because with
the approach the tenant administrator isn't a member of every role,
but rather just gets the privileges of all the roles as if they were.
You might argue that's a distinction without a difference, but I don't
think so: the superuser is in effect a member of every role as things
stand, and the whole idea of this project is to all for
quasi-superusers who can administer a subset of the users in the
system, so something of this kind seems like it has to exist for the
proposal to achieve its object. But it need not be role membership per
se, and maybe shouldn't be.

I don't know if this is a better idea than what Mark did, but I think
it has some appealing properties. One is that you don't need to (and
indeed can't) have people log in as the lead tenant role directly -
because that concept does not exist. If Google is your customer, then
in Mark's proposal, you have a high-privilege 'google' account and you
log into that when you want to do high-privilege things. But what if
you have multiple people who are entitled to administer the Google
tenant? Either they share access to that single account, or, well, I
don't know. A second user could have membership in every login and
non-login role for the tenant, but only one user can be the owner of
all of those roles, so maybe there's no other way to do it. If the
tenant is a separate concept that sits to one side of the role system,
you can just make multiple users administrators of the google tenant,
and that should be fine. And that way, each one has their own password
and can be separately disabled if that person leaves the company or
demoted to a non-administrator if they get moved to a different job.

There might well be problems with this idea, either on a grand scale
that make the whole thing a non-starter, or on a smaller scale that
mean that the definition of what it means to be a tenant administrator
needs fine-tuning ... but I don't know what they are, so I thought I'd
throw this out there and see what people think.

Thanks,

--
Robert Haas
EDB: http://www.enterprisedb.com

#117Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Robert Haas (#116)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Oct 27, 2021, at 1:10 PM, Robert Haas <robertmhaas@gmail.com> wrote:

This is effectively the same thing as Mark's proposal, but just using
a new kind of object (TENANT) where Mark used an existing kind of
object (ROLE). And it addresses Noah's concern, perhaps, because with
the approach the tenant administrator isn't a member of every role,
but rather just gets the privileges of all the roles as if they were.
You might argue that's a distinction without a difference, but I don't
think so: the superuser is in effect a member of every role as things
stand, and the whole idea of this project is to all for
quasi-superusers who can administer a subset of the users in the
system, so something of this kind seems like it has to exist for the
proposal to achieve its object. But it need not be role membership per
se, and maybe shouldn't be.

It feels to me that the traditional concept of users and groups could map, one-to-one, onto users and roles, but we've mapped both users and groups, many-to-one, onto roles, leaving no distinct concept of groups, and now we're proposing adding a concept called "tenant" that means something like "group". I find that simultaneously helpful and pretty confusing.

Compare that to the help and confusion created by my proposal. The idea that roles can own roles, just as roles can own tables, indexes, etc., doesn't seem confusing to me, but perhaps it does to others. If you accept that roles can own roles, then the idea that roles can drop roles that they own, or change characteristics of roles that they own, is entirely analogous to roles being able to drop or alter any other sort of object that they own. To me, that is perfectly consistent and unsurprising, but again, perhaps not to others.

Noah's concern, as I understood it, was not about roles owning roles, but about role membership being what controls if an event trigger fires. If anything, that concern stems from the lack of role ownership, not the existence of it, because I wrote the event trigger patch set to not depend on the role ownership patch set. Once you have a concept of role ownership, it is perfectly natural that the trigger could fire based on whether the trigger owner is the owner of (or the same as) the role performing the action. That completely sidesteps the concern about the event trigger role needing to be a member of any log-in role, because you no longer need the event trigger owner to be a member of the log-in role.

There are semantic details to be worked out with role ownership, such as whether a role owner automatically has the privileges of roles it owns, whether such privilege, if any, should behave à la INHERIT or NOINHERIT, whether superusers should own roles they create or whether there should be a special rule that superuser created roles should belong to the bootstrap superuser, etc. The patch set has taken a position on each of these, because it cannot be implemented without some choice being made, but many of these decisions could be changed if they are the source of confusion. If, on the other hand, having parallel concepts "role A owns role B" and "role C is a member of role D" is too confusing for people to ever keep straight, then perhaps we need something like "tenant" to help lessen the confusion.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#118Jeff Davis
pgsql@j-davis.com
In reply to: Robert Haas (#116)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Wed, 2021-10-27 at 16:10 -0400, Robert Haas wrote:

But the thing that defines a tenant need not be a role. It can be
some
other kind of object. Suppose we invent a CREATE TENANT command.

Would it be a recursive concept? Could a tenant create a sub-tenant?

Regards,
Jeff Davis

#119Jeff Davis
pgsql@j-davis.com
In reply to: Mark Dilger (#117)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Thu, 2021-10-28 at 11:02 -0700, Mark Dilger wrote:

It feels to me that the traditional concept of users and groups could
map, one-to-one, onto users and roles, but we've mapped both users
and groups, many-to-one, onto roles, leaving no distinct concept of
groups, and now we're proposing adding a concept called "tenant" that
means something like "group". I find that simultaneously helpful and
pretty confusing.

That's a good point. There are a lot of concepts involved; adding one
more could certainly cause confusion.

But I don't think the concept of role ownership has zero potential
confusion, either. For instance, I could certainly imagine a user A
creating a role B (and therefore owning it), and then doing "GRANT A TO
B". Is there a reason to do that, or is the user confused about what
membership versus ownership mean?

Noah's concern, as I understood it, was not about roles owning roles,
but about role membership being what controls if an event trigger
fires. If anything, that concern stems from the lack of role
ownership, not the existence of it, because I wrote the event trigger
patch set to not depend on the role ownership patch set.

Your patch[0]/messages/by-id/914FF898-5AC4-4E02-8A05-3876087007FB@enterprisedb.com causes role membership to control whether and event
trigger fires. If it was solely based on role *ownership* and had
nothing to do with role *membership*, that does seem better to me.

[0]: /messages/by-id/914FF898-5AC4-4E02-8A05-3876087007FB@enterprisedb.com
/messages/by-id/914FF898-5AC4-4E02-8A05-3876087007FB@enterprisedb.com

Regards,
Jeff Davis

#120Robert Haas
robertmhaas@gmail.com
In reply to: Jeff Davis (#118)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Fri, Oct 29, 2021 at 6:56 PM Jeff Davis <pgsql@j-davis.com> wrote:

On Wed, 2021-10-27 at 16:10 -0400, Robert Haas wrote:

But the thing that defines a tenant need not be a role. It can be
some
other kind of object. Suppose we invent a CREATE TENANT command.

Would it be a recursive concept? Could a tenant create a sub-tenant?

I could imagine a system like this with or without that concept.

--
Robert Haas
EDB: http://www.enterprisedb.com

#121Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Jeff Davis (#119)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Oct 29, 2021, at 4:46 PM, Jeff Davis <pgsql@j-davis.com> wrote:

But I don't think the concept of role ownership has zero potential
confusion, either. For instance, I could certainly imagine a user A
creating a role B (and therefore owning it), and then doing "GRANT A TO
B". Is there a reason to do that, or is the user confused about what
membership versus ownership mean?

In general, I think that would be the result of the user being confused. But it is hard to say that definitively, because perhaps users A and C want to create a single user B with the union of both their roles, and have agreed to perform:

user_a% CREATE ROLE B;
user_a% GRANT A TO B;
user_c% GRANT C TO B;

The easiest way of thinking about role ownership is that a role's owner is superuser in so far as that role is concerned. It can drop them, modify them, take their objects away from them, assign other objects to them, etc. Anything a superuser could do to impoverish them, their owner can do to impoverish them. The difference is that an actual superuser can enrich them with anything the superuser likes, whereas their owner can only enrich them with objects and privileges that the owner itself has rights to assign.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#122Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#121)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Oct 29, 2021, at 4:46 PM, Jeff Davis <pgsql@j-davis.com> wrote:
But I don't think the concept of role ownership has zero potential
confusion, either. For instance, I could certainly imagine a user A
creating a role B (and therefore owning it), and then doing "GRANT A TO
B". Is there a reason to do that, or is the user confused about what
membership versus ownership mean?

In general, I think that would be the result of the user being confused. But it is hard to say that definitively, because perhaps users A and C want to create a single user B with the union of both their roles, and have agreed to perform:

user_a% CREATE ROLE B;
user_a% GRANT A TO B;
user_c% GRANT C TO B;

The easiest way of thinking about role ownership is that a role's owner is superuser in so far as that role is concerned. It can drop them, modify them, take their objects away from them, assign other objects to them, etc. Anything a superuser could do to impoverish them, their owner can do to impoverish them. The difference is that an actual superuser can enrich them with anything the superuser likes, whereas their owner can only enrich them with objects and privileges that the owner itself has rights to assign.

I can generally get behind the idea that a user who has been allowed to
create other roles should be able to do various other things with that
role, but should also be limited by what rights they themselves have
(unlike how CREATEROLE works today).

That said, I have a hard time seeing why we're drawing this distinction
of 'ownership' as being ultimately different from simple 'admin' rights
on a role. In other words, beyond the ability to actually create/drop
roles, having 'admin' rights on a role already conveys just about
everything 'ownership' would. The things that are getting in the way
there are:

- Ability to actually create/alter/drop roles, this needs to be
addressed somehow but doesn't necessarily imply a need for
'ownership' as a concept.

- Restriction of a role from being able to implicitly have 'admin'
rights on itself, as I started a discussion about elsewhere.

- Some system for deciding who event triggers should fire for. I don't
think this should really be tied into the question of who has admin
rights on whom except to the extent that maybe you can only cause
event triggers to fire for roles you've got admin rights on (or maybe
membership in).

One thing that comes to mind is that event triggers aren't the only
thing out there and I have to wonder if we should be thinking about
other things. As a thought exercise- how is an event trigger really
different from a table-level trigger? Anyone who has the ability to
create objects is able to create tables, create functions, create
operators, and a user logging in and running SQL can certainly end up
running those things with their privileges. We've generally recognized
that that's not great and there's been work to get it so that the
'public' schema that everyone has in their search_path by default won't
be world-writable but that isn't exactly a cure-all for the general
problem.

One of the interesting bits is that there's two sides to this. On the
one hand, as a user, maybe I don't want to run functions of people who I
don't trust. As an admin/superuser/landlord, maybe I want to require
everyone who I have authority over to run these functions/event
triggers. I'm not sure that we can find a solution to everything with
this but figure I'd share these thoughts.

Last thought I'll share is that I do believe we're going to want to
provide flexibility when it comes to defining who event triggers run
for, as a given admin may wish for that set to be different from the set
of roles that they ultimately have control over. I dislike tying these
two things together at such a core level and therefore continue to feel
that CREATE EVENT TRIGGER should be extended in some fashion to allow
individuals who can create them to specify who they are to run for.
Open to different ideas as to how a user could express that, but it
feels to me like that should be a core part of the definition of a
user-defined event trigger (ie: could be "FOR ALL ROLES I OWN" or
whatever, and maybe that's the default, but having that be the only
option isn't appealing).

Thanks,

Stephen

#123Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#115)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Oct 25, 2021, at 11:30 AM, Stephen Frost <sfrost@snowman.net> wrote:

Consider instead:

CREATE ROLE X;
CREATE ROLE Y;
CREATE ROLE Z;

GRANT Y to X;
GRANT Z to X;

SET ROLE X;
CREATE EVENT TRIGGER FOR Y do_stuff();

Now, X has explicitly said that they want the event trigger to fire for
role Y and if the event trigger fires or not is no longer based on
membership in the role creating the trigger but instead depends on being
the role which the event trigger was explicitly defined to fire on.

I don't think your proposal quite works, because the set of users you'd like to audit with an event trigger based auditing system may be both large and dynamic:

CREATE ROLE batman;
CREATE ROLE robin;

SET ROLE batman;
CREATE ROLE gotham_residents NOLOGIN;
CREATE ROLE riddler IN ROLE gotham_residents LOGIN;
-- create millions of other Gotham residents....
CREATE EVENT TRIGGER FOR gotham_residents audit_criminal_activity();

Batman is not superuser, but he's pretty powerful, and he wants to audit all the criminal activity in Gotham. How should he expect this example to work?

Having the "FOR gotham_residents" clause mean anybody with membership in role gotham_residents is problematic, because it means that being granted into a role both increases and decreases your freedoms, rather than merely giving you more freedoms. If Batman covets privileges that Robin has, but wants not to be subjected to any event triggers that fire for Robin, he both wants into and out of role Robin.

The privileges afforded to 'robin' could be GRANT'd to another role
created for that purpose which is then GRANT'd to 'batman' though.
Indeed, that role could be used as the role which GRANT's 'robin' those
rights in the first place too. This kind of permission management is
largely the point of the role-based system we have.

Having "FOR gotham_residents" mean that only actions performed by role "gotham_residents" should fire the trigger is useless, since Gotham residents don't log in as that, but as themselves. Batman won't catch anybody this way.

Naturally. That doesn't mean that there couldn't be some other role
which all of those roles are made a member of though. Either way,
there's a big list of "roles this event trigger runs for" and that has
to be managed. That it happens to be "roles owned by batman", if we
went with your suggested approach, instead of other role membership
doesn't really 'fix' that because there'll be other roles in the system
which 'batman' doesn't own. One nice thing of using roles for this is
that you end up being able to use the same role multiple ways- consider
this: I want to audit all roles who login to database mydb. Ah-hah, now
I can say:

CREATE DATABASE mydb;
CREATE EVENT TRIGGER FOR gotham_residents audit_stuff();
REVOKE CONNECT ON DATABASE mydb FROM PUBLIC;
GRANT CONNECT ON DATABASE mydb TO gotham_residents;

Now the two are connected- if you can connect to that database, then
you're going to get audited, and if you manage access to the 'mydb'
database using membership in that role then there's no way for a role to
be able to connect to that database without being audited (except for a
true superuser, but that's always going to be an exception).

Having to list each new resident to the trigger is tedious and error-prone. Batman may not be able to pass a compliance audit.

Agreed. Also wouldn't be great since eventually the role list might
have to get TOAST'd and then you're doing an extra lookup to pull back
the list, yuck.

Having Batman *own* all residents in Gotham city would work, if we can agree on a role ownership system. It has the downside that only a role's (direct or indirect) owner can do the auditing, though. That's more flexible than what we have today, where only superuser can do it, but maybe some people would want to argue for a different solution with even more flexibility? A grantable privilege perhaps? But whatever it is, the reasoning about who gets audited and who does not must be clear enough that Batman can pass a compliance audit.

What about roles which Batman owns but which he *doesn't* want the event
trigger to fire for?

Note that event triggers are not strictly limited to the auditing case.
Viewing them through that lense masks other quite common use-cases which
are also importnat to consider (like preventing many users, but not all,
from being able to DROP objects as a clear example).

Thanks,

Stephen

#124Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#122)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Nov 1, 2021, at 12:44 PM, Stephen Frost <sfrost@snowman.net> wrote:

I can generally get behind the idea that a user who has been allowed to
create other roles should be able to do various other things with that
role, but should also be limited by what rights they themselves have
(unlike how CREATEROLE works today).

I intend to rearrange the role ownership patch set to have the 0004-Restrict-power-granted-via-CREATEROLE.patch come before, and be independent of, the patches that introduce role ownership. That would put the less controversial patch first, and might get committed what we all agree.

That said, I have a hard time seeing why we're drawing this distinction
of 'ownership' as being ultimately different from simple 'admin' rights
on a role. In other words, beyond the ability to actually create/drop
roles, having 'admin' rights on a role already conveys just about
everything 'ownership' would. The things that are getting in the way
there are:

- Ability to actually create/alter/drop roles, this needs to be
addressed somehow but doesn't necessarily imply a need for
'ownership' as a concept.

- Restriction of a role from being able to implicitly have 'admin'
rights on itself, as I started a discussion about elsewhere.

- Some system for deciding who event triggers should fire for. I don't
think this should really be tied into the question of who has admin
rights on whom except to the extent that maybe you can only cause
event triggers to fire for roles you've got admin rights on (or maybe
membership in).

You and I are not that far apart on this issue. The reason I wanted to use "ownership" rather than ADMIN is that the spec has a concept of ADMIN and I don't know that we can fix everything we want to fix and still be within compliance with the spec.

One thing that comes to mind is that event triggers aren't the only
thing out there and I have to wonder if we should be thinking about
other things. As a thought exercise- how is an event trigger really
different from a table-level trigger? Anyone who has the ability to
create objects is able to create tables, create functions, create
operators, and a user logging in and running SQL can certainly end up
running those things with their privileges.

The difference in my mind is that table triggers owned by non-superusers have been around for a long time and are in heavy use, so changing how that behaves is a huge backwards compatibility break. Event triggers owned by non-superusers are only a fluke, not an intentional feature, and only occur when a superuser creates an event trigger and later has superuser privileges revoked. We can expect that far fewer users are really depending on that to work compared with table triggers.

In a green field, I would not create table triggers to work as they do.

We've generally recognized
that that's not great and there's been work to get it so that the
'public' schema that everyone has in their search_path by default won't
be world-writable but that isn't exactly a cure-all for the general
problem.

I agree.

One of the interesting bits is that there's two sides to this. On the
one hand, as a user, maybe I don't want to run functions of people who I
don't trust. As an admin/superuser/landlord, maybe I want to require
everyone who I have authority over to run these functions/event
triggers. I'm not sure that we can find a solution to everything with
this but figure I'd share these thoughts.

If roles were not cluster-wide, I might not have such a problem with leaving things mostly as they are. But there is something really objectionable to having two separate databases in a cluster intended for two separate purposes and with two separate sets of roles, and the set of roles in one database can mess with the roles intended for the other database. I think some kind of partitioning is needed, and I saw role ownership as the cleanest solution to it. I share your intuitions that perhaps the WITH ADMIN OPTION stuff could be used instead, but I don't see quite how.

Last thought I'll share is that I do believe we're going to want to
provide flexibility when it comes to defining who event triggers run
for, as a given admin may wish for that set to be different from the set
of roles that they ultimately have control over. I dislike tying these
two things together at such a core level and therefore continue to feel
that CREATE EVENT TRIGGER should be extended in some fashion to allow
individuals who can create them to specify who they are to run for.

Within reason, sure. It is fine by me if we support CREATE EVENT TRIGGER...AUTHORIZATION... in order to accomplish that. But the role running that command still needs to be limited to just a (proper or otherwise) subset of their own privileges.

I thought about this some when originally writing the event trigger patch. The author of the event trigger is free to add a preamble to the trigger that exits early if the user, time of day, phase of the moon, etc., are inappropriate per the reasoning of the trigger author. We only need the system to prevent the event trigger from casting too wide a net. The event trigger author can limit the scope of the net further if desired.

Open to different ideas as to how a user could express that, but it
feels to me like that should be a core part of the definition of a
user-defined event trigger (ie: could be "FOR ALL ROLES I OWN" or
whatever, and maybe that's the default, but having that be the only
option isn't appealing).

I am not strongly against adding syntactic support for FOR ALL ROLES vs. FOR role, role, ..., so long as that syntax cannot expand the net. It does seem a bit arbitrary to me, though, since you could also say FOR HOURS OF DAY 11PM through 3AM, and once you open the door to supporting all that in the syntax, and tracking it in the catalogs, you've opened a can of worms.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#125Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#123)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Nov 1, 2021, at 1:13 PM, Stephen Frost <sfrost@snowman.net> wrote:

Having Batman *own* all residents in Gotham city would work, if we can agree on a role ownership system. It has the downside that only a role's (direct or indirect) owner can do the auditing, though. That's more flexible than what we have today, where only superuser can do it, but maybe some people would want to argue for a different solution with even more flexibility? A grantable privilege perhaps? But whatever it is, the reasoning about who gets audited and who does not must be clear enough that Batman can pass a compliance audit.

What about roles which Batman owns but which he *doesn't* want the event
trigger to fire for?

I think Batman just has the event trigger exit early for that. There is nothing we can hardcode for filtering users into and out of the trigger that will be as flexible as the logic that Batman can implement in the trigger itself. We only need to worry about Batman over stepping his authority. It's not our job to filter further than that.

Note that event triggers are not strictly limited to the auditing case.
Viewing them through that lense masks other quite common use-cases which
are also importnat to consider (like preventing many users, but not all,
from being able to DROP objects as a clear example).

Nothing in my proposal limits what superusers can do with event triggers they create. The issue under discussion is entirely to do with what non-superusers are allowed to do with event triggers. I see no reason why some ordinary role "joe" should be allowed to thwart DROP commands issued on a table that "joe" doesn't own by roles that "joe" doesn't own. Maybe "own" here should be "have ADMIN on", but it has to be something.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#126Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#124)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Nov 1, 2021, at 12:44 PM, Stephen Frost <sfrost@snowman.net> wrote:
I can generally get behind the idea that a user who has been allowed to
create other roles should be able to do various other things with that
role, but should also be limited by what rights they themselves have
(unlike how CREATEROLE works today).

I intend to rearrange the role ownership patch set to have the 0004-Restrict-power-granted-via-CREATEROLE.patch come before, and be independent of, the patches that introduce role ownership. That would put the less controversial patch first, and might get committed what we all agree.

I've not directly looked at that patch, but I like it based on the name,
if we think we can actually get folks to agree to is as it's quite a
change from the current situation. Previously I've felt that we
wouldn't have support for breaking backwards compatibility in such a
manner but perhaps I'm wrong on that. There's also something to be
said, in my view anyway, of having a predefined role be used for what we
want CREATEROLE to be rather than changing the existing CREATEROLE role
attribute. Reason being that such a predefined role could then be
GRANT'd to some other role along with whatever other generally-relevant
privileges there are and then that GRANT'd to whomever should have those
rights. That's not really possible with the current CREATEROLE role
attribute.

That said, I have a hard time seeing why we're drawing this distinction
of 'ownership' as being ultimately different from simple 'admin' rights
on a role. In other words, beyond the ability to actually create/drop
roles, having 'admin' rights on a role already conveys just about
everything 'ownership' would. The things that are getting in the way
there are:

- Ability to actually create/alter/drop roles, this needs to be
addressed somehow but doesn't necessarily imply a need for
'ownership' as a concept.

- Restriction of a role from being able to implicitly have 'admin'
rights on itself, as I started a discussion about elsewhere.

- Some system for deciding who event triggers should fire for. I don't
think this should really be tied into the question of who has admin
rights on whom except to the extent that maybe you can only cause
event triggers to fire for roles you've got admin rights on (or maybe
membership in).

You and I are not that far apart on this issue. The reason I wanted to use "ownership" rather than ADMIN is that the spec has a concept of ADMIN and I don't know that we can fix everything we want to fix and still be within compliance with the spec.

There's no concept in the spec of event triggers, I don't believe
anyway, so I'm not really buying this particular argument. Seems like
we'd be more likely to run afoul of some future spec by creating a
concept of role ownership and creating a definition around what that
means than using something existing in the spec as controlling what some
other not-in-spec thing does.

One thing that comes to mind is that event triggers aren't the only
thing out there and I have to wonder if we should be thinking about
other things. As a thought exercise- how is an event trigger really
different from a table-level trigger? Anyone who has the ability to
create objects is able to create tables, create functions, create
operators, and a user logging in and running SQL can certainly end up
running those things with their privileges.

The difference in my mind is that table triggers owned by non-superusers have been around for a long time and are in heavy use, so changing how that behaves is a huge backwards compatibility break. Event triggers owned by non-superusers are only a fluke, not an intentional feature, and only occur when a superuser creates an event trigger and later has superuser privileges revoked. We can expect that far fewer users are really depending on that to work compared with table triggers.

In a green field, I would not create table triggers to work as they do.

I don't think we're entirely beholden to having table-level triggers
work the way they do today. I agree that we can't simply stop having
them fire for some users while letting things continue to happen on the
table but throwing an error and rolling back a transaction with an error
saying "you were about to run this trigger which runs this function with
your privileges and you don't trust the person who wrote it" seems
entirely within reason, were we to have such a concept.

We've generally recognized
that that's not great and there's been work to get it so that the
'public' schema that everyone has in their search_path by default won't
be world-writable but that isn't exactly a cure-all for the general
problem.

I agree.

One of the interesting bits is that there's two sides to this. On the
one hand, as a user, maybe I don't want to run functions of people who I
don't trust. As an admin/superuser/landlord, maybe I want to require
everyone who I have authority over to run these functions/event
triggers. I'm not sure that we can find a solution to everything with
this but figure I'd share these thoughts.

If roles were not cluster-wide, I might not have such a problem with leaving things mostly as they are. But there is something really objectionable to having two separate databases in a cluster intended for two separate purposes and with two separate sets of roles, and the set of roles in one database can mess with the roles intended for the other database. I think some kind of partitioning is needed, and I saw role ownership as the cleanest solution to it. I share your intuitions that perhaps the WITH ADMIN OPTION stuff could be used instead, but I don't see quite how.

I agree that roles existing cluster-level is an issue in some instances
though I'm not quite sure what the concern here is (how could a role in
database A mess with roles in database B unless the first role had some
kind of access on those roles, in which case, what's the issue..?).

Another thread/patch under discussion is around role membership being
made to be able to be per-database, which could be pretty interesting,
though I don't think it directly helps with what you're suggesting
above, unfortunately.

Last thought I'll share is that I do believe we're going to want to
provide flexibility when it comes to defining who event triggers run
for, as a given admin may wish for that set to be different from the set
of roles that they ultimately have control over. I dislike tying these
two things together at such a core level and therefore continue to feel
that CREATE EVENT TRIGGER should be extended in some fashion to allow
individuals who can create them to specify who they are to run for.

Within reason, sure. It is fine by me if we support CREATE EVENT TRIGGER...AUTHORIZATION... in order to accomplish that. But the role running that command still needs to be limited to just a (proper or otherwise) subset of their own privileges.

I thought about this some when originally writing the event trigger patch. The author of the event trigger is free to add a preamble to the trigger that exits early if the user, time of day, phase of the moon, etc., are inappropriate per the reasoning of the trigger author. We only need the system to prevent the event trigger from casting too wide a net. The event trigger author can limit the scope of the net further if desired.

I don't know that all such event triggers will necessarily be able to be
modified by everyone who will want to use them in the way you're
suggesting. Consider that there's things which require the event
trigger to be a C function as a simple example.

Open to different ideas as to how a user could express that, but it
feels to me like that should be a core part of the definition of a
user-defined event trigger (ie: could be "FOR ALL ROLES I OWN" or
whatever, and maybe that's the default, but having that be the only
option isn't appealing).

I am not strongly against adding syntactic support for FOR ALL ROLES vs. FOR role, role, ..., so long as that syntax cannot expand the net. It does seem a bit arbitrary to me, though, since you could also say FOR HOURS OF DAY 11PM through 3AM, and once you open the door to supporting all that in the syntax, and tracking it in the catalogs, you've opened a can of worms.

I disagree that it's a "can of worms" that one would be opening. Sure,
folks can ask for all kinds of things and that's true today, but
ultimately we're the arbitrators of what is a sensible and common enough
use-case and what's not. We seem to be in pretty clear agreement that
it's a sensible and reasonably common use-case for an event trigger
definer to wish for it to only be run for some subset of individuals and
that subset might not always be the exact subset of individuals that a
given role has 'ownership' or 'admin' rights over. Your approach puts
the onus of limiting that on the trigger author, who might not even be
involved if it's some function that's provided from an extension and
written in C and distributed in a packaged form from PGDG. There's also
no way to tie together privileges between who is allowed to do some
action and the individuals who the event trigger fires for, which seems
unfortuante to me.

Thanks,

Stephen

#127Stephen Frost
sfrost@snowman.net
In reply to: Mark Dilger (#125)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

Greetings,

* Mark Dilger (mark.dilger@enterprisedb.com) wrote:

On Nov 1, 2021, at 1:13 PM, Stephen Frost <sfrost@snowman.net> wrote:

Having Batman *own* all residents in Gotham city would work, if we can agree on a role ownership system. It has the downside that only a role's (direct or indirect) owner can do the auditing, though. That's more flexible than what we have today, where only superuser can do it, but maybe some people would want to argue for a different solution with even more flexibility? A grantable privilege perhaps? But whatever it is, the reasoning about who gets audited and who does not must be clear enough that Batman can pass a compliance audit.

What about roles which Batman owns but which he *doesn't* want the event
trigger to fire for?

I think Batman just has the event trigger exit early for that. There is nothing we can hardcode for filtering users into and out of the trigger that will be as flexible as the logic that Batman can implement in the trigger itself. We only need to worry about Batman over stepping his authority. It's not our job to filter further than that.

As noted in my other email you're likely currently reading, this
presumes that Batman is the author of the trigger and is able to make
such changes. I'm also not thrilled with the presumption that, even if
batman is the author and maintainer, that batman would then have to
write in such exclusions for what strikes me as a pretty commonly wished
for use-case.

Note that event triggers are not strictly limited to the auditing case.
Viewing them through that lense masks other quite common use-cases which
are also importnat to consider (like preventing many users, but not all,
from being able to DROP objects as a clear example).

Nothing in my proposal limits what superusers can do with event triggers they create. The issue under discussion is entirely to do with what non-superusers are allowed to do with event triggers. I see no reason why some ordinary role "joe" should be allowed to thwart DROP commands issued on a table that "joe" doesn't own by roles that "joe" doesn't own. Maybe "own" here should be "have ADMIN on", but it has to be something.

I agree that we're talking about non-superuser event triggers. I wasn't
suggesting that a non-superuser role 'joe' be able to create event
triggers that impact roles that 'joe' doesn't have rights of some kind
over. I'm not quite following how your response here is addressing the
point that I brought up in what was quoted above it.

Thanks,

Stephen

#128Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#126)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Nov 1, 2021, at 2:00 PM, Stephen Frost <sfrost@snowman.net> wrote:

I've not directly looked at that patch, but I like it based on the name,
if we think we can actually get folks to agree to is as it's quite a
change from the current situation. Previously I've felt that we
wouldn't have support for breaking backwards compatibility in such a
manner but perhaps I'm wrong on that.

I am neutral on this. I prefer not to break backward compatibility, but I also prefer to fix broken features rather than leave them as traps for the unwary. The CREATEROLE attribute exists and is defined in a way that is broadly viewed as a misfeature. Fixing it has long term benefits, but short term compatibility concerns.

There's also something to be
said, in my view anyway, of having a predefined role be used for what we
want CREATEROLE to be rather than changing the existing CREATEROLE role
attribute.

I don't see an additional benefit beyond preserving compatibility with how CREATEROLE has historically worked.

Reason being that such a predefined role could then be
GRANT'd to some other role along with whatever other generally-relevant
privileges there are and then that GRANT'd to whomever should have those
rights. That's not really possible with the current CREATEROLE role
attribute.

I'm not seeing that. If you create a role "role_admin" and give it CREATEROLE and other stuff, maybe CREATEDB, pg_read_all_data, and so forth, then you grant "stephen" membership in "role_admin", doesn't that work? Why would "role_admin" being a member of some new role, say "pg_can_create_roles", work differently than "role_admin" having the CREATEROLE attribute?

That said, I have a hard time seeing why we're drawing this distinction
of 'ownership' as being ultimately different from simple 'admin' rights
on a role. In other words, beyond the ability to actually create/drop
roles, having 'admin' rights on a role already conveys just about
everything 'ownership' would. The things that are getting in the way
there are:

- Ability to actually create/alter/drop roles, this needs to be
addressed somehow but doesn't necessarily imply a need for
'ownership' as a concept.

- Restriction of a role from being able to implicitly have 'admin'
rights on itself, as I started a discussion about elsewhere.

- Some system for deciding who event triggers should fire for. I don't
think this should really be tied into the question of who has admin
rights on whom except to the extent that maybe you can only cause
event triggers to fire for roles you've got admin rights on (or maybe
membership in).

You and I are not that far apart on this issue. The reason I wanted to use "ownership" rather than ADMIN is that the spec has a concept of ADMIN and I don't know that we can fix everything we want to fix and still be within compliance with the spec.

There's no concept in the spec of event triggers, I don't believe
anyway, so I'm not really buying this particular argument. Seems like
we'd be more likely to run afoul of some future spec by creating a
concept of role ownership and creating a definition around what that
means than using something existing in the spec as controlling what some
other not-in-spec thing does.

The WITH ADMIN OPTION feature has a really well defined meaning. If you have ADMIN on a role, you can grant and revoke that role to/from other roles. That's it. If we start tying a bunch of other stuff to that, we're breaking reasonable expectations about how WITH ADMIN OPTION works, and since the spec defines how that works, we're then in violation of the spec.

CREATEROLE, on the other hand, has no defined meaning in the spec. It's a postgres invention. So if we change what it means, we're not breaking compability with the spec, only backward compatibility with older version of postgres vis-a-vis the CREATEROLE misfeature that most people presumably don't use. I find that far preferable to breaking spec compliance. It is strange to me that you view changing how WITH ADMIN OPTION functions as being motivated by spec compliance, since I see it as going in the opposite direction.

As you say above, we'd have to tie the ability to create, alter, and drop roles to the ADMIN option. That already sounds like a non-starter to me. We'd further want to tie other stuff, like event triggers, to ADMIN option. I don't see how this furthers spec compliance.

Tying this stuff to CREATEROLE seems perfectly fair. Nobody coming from another database vendor to postgres should have any spec-compatibility-based expectations about how CREATEROLE works.

One thing that comes to mind is that event triggers aren't the only
thing out there and I have to wonder if we should be thinking about
other things. As a thought exercise- how is an event trigger really
different from a table-level trigger? Anyone who has the ability to
create objects is able to create tables, create functions, create
operators, and a user logging in and running SQL can certainly end up
running those things with their privileges.

The difference in my mind is that table triggers owned by non-superusers have been around for a long time and are in heavy use, so changing how that behaves is a huge backwards compatibility break. Event triggers owned by non-superusers are only a fluke, not an intentional feature, and only occur when a superuser creates an event trigger and later has superuser privileges revoked. We can expect that far fewer users are really depending on that to work compared with table triggers.

In a green field, I would not create table triggers to work as they do.

I don't think we're entirely beholden to having table-level triggers
work the way they do today. I agree that we can't simply stop having
them fire for some users while letting things continue to happen on the
table but throwing an error and rolling back a transaction with an error
saying "you were about to run this trigger which runs this function with
your privileges and you don't trust the person who wrote it" seems
entirely within reason, were we to have such a concept.

You're pushing at an open door. If the community doesn't object to fixing the security problems with table triggers, I'm not going to object either.

If roles were not cluster-wide, I might not have such a problem with leaving things mostly as they are. But there is something really objectionable to having two separate databases in a cluster intended for two separate purposes and with two separate sets of roles, and the set of roles in one database can mess with the roles intended for the other database. I think some kind of partitioning is needed, and I saw role ownership as the cleanest solution to it. I share your intuitions that perhaps the WITH ADMIN OPTION stuff could be used instead, but I don't see quite how.

I agree that roles existing cluster-level is an issue in some instances
though I'm not quite sure what the concern here is (how could a role in
database A mess with roles in database B unless the first role had some
kind of access on those roles, in which case, what's the issue..?).

The problem is that superusers can act in any database, so role administration in database A must be done by a non-superuser if you want that administrator to be unable to mess with the roles used in database B. But what mechanism do we have for that? WITH ADMIN OPTION is too narrow to do it, and I've already argued why I don't want to expand that power, and CREATEROLE as currently implemented is too broad.

Another thread/patch under discussion is around role membership being
made to be able to be per-database, which could be pretty interesting,
though I don't think it directly helps with what you're suggesting
above, unfortunately.

Yes, I took some interest in that conversation. Like you, I'm not sure I see how it fixes the problems under discussion here.

Last thought I'll share is that I do believe we're going to want to
provide flexibility when it comes to defining who event triggers run
for, as a given admin may wish for that set to be different from the set
of roles that they ultimately have control over. I dislike tying these
two things together at such a core level and therefore continue to feel
that CREATE EVENT TRIGGER should be extended in some fashion to allow
individuals who can create them to specify who they are to run for.

Within reason, sure. It is fine by me if we support CREATE EVENT TRIGGER...AUTHORIZATION... in order to accomplish that. But the role running that command still needs to be limited to just a (proper or otherwise) subset of their own privileges.

I thought about this some when originally writing the event trigger patch. The author of the event trigger is free to add a preamble to the trigger that exits early if the user, time of day, phase of the moon, etc., are inappropriate per the reasoning of the trigger author. We only need the system to prevent the event trigger from casting too wide a net. The event trigger author can limit the scope of the net further if desired.

I don't know that all such event triggers will necessarily be able to be
modified by everyone who will want to use them in the way you're
suggesting. Consider that there's things which require the event
trigger to be a C function as a simple example.

I don't care much about this. You can implement that if you want, and I'm not going to have a reason to complain, unless it somehow allows people to cast too wide a net. Narrowing the net is, to my mind, entirely orthogonal to this discussion.

Open to different ideas as to how a user could express that, but it
feels to me like that should be a core part of the definition of a
user-defined event trigger (ie: could be "FOR ALL ROLES I OWN" or
whatever, and maybe that's the default, but having that be the only
option isn't appealing).

I am not strongly against adding syntactic support for FOR ALL ROLES vs. FOR role, role, ..., so long as that syntax cannot expand the net. It does seem a bit arbitrary to me, though, since you could also say FOR HOURS OF DAY 11PM through 3AM, and once you open the door to supporting all that in the syntax, and tracking it in the catalogs, you've opened a can of worms.

I disagree that it's a "can of worms" that one would be opening. Sure,
folks can ask for all kinds of things and that's true today, but
ultimately we're the arbitrators of what is a sensible and common enough
use-case and what's not. We seem to be in pretty clear agreement that
it's a sensible and reasonably common use-case for an event trigger
definer to wish for it to only be run for some subset of individuals and
that subset might not always be the exact subset of individuals that a
given role has 'ownership' or 'admin' rights over. Your approach puts
the onus of limiting that on the trigger author, who might not even be
involved if it's some function that's provided from an extension and
written in C and distributed in a packaged form from PGDG. There's also
no way to tie together privileges between who is allowed to do some
action and the individuals who the event trigger fires for, which seems
unfortuante to me.

I understand why you want this, but I don't understand why you think it is tied to a security patch. I'm not being facetious when I mention having syntax to support event triggers to fire only at certain times of day. Plenty of deployments I have encountered have exactly this type of restriction, limiting the time of day when certain sorts of actions can be performed. Similarly, I have seen deployments which have their heaviest activity around the Christmas shopping season. They might want event triggers that fire between Black Friday and Boxing Day that prevent schema changes during such heavy load, but not the rest of the year. And they might want them to fire for some roles and not others.

The idea in the event trigger patch is to make it reasonable, from a security standpoint, to allow non-superusers to create event triggers. The only thing that makes it *unreasonable* for them to do so is that an event trigger could block or alter actions performed by roles which the non-superuser trigger owner should not have the privilege to block or alter. So restrictions on when the event trigger fires to get around that problem seem on topic. Other filters, no matter how good the idea, are simply off topic. Go and implement them with my blessing. But I don't see why I should have to implement them as part of this patch set.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#129Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Stephen Frost (#127)
Re: Delegating superuser tasks to new security roles (Was: Granting control of SUSET gucs to non-superusers)

On Nov 1, 2021, at 2:05 PM, Stephen Frost <sfrost@snowman.net> wrote:

I'm not quite following how your response here is addressing the
point that I brought up in what was quoted above it.

Could you clarify which question I didn't answer? I fear I may have left something unanswered, but I don't know to what you are referring.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company